mongoose的基础用法

下面是根据官网文档quick start的范例敲了一遍代码,然后附加一些解释

//首先npm下载mongoose并且保证mongodb已经下载,服务器已经运行
//接下来是获取mongoose模块
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:28001/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));

//如果看到控制台的信息说明我们连接成功并且打开了数据库
db.once('open', function () {
  console.log('mongoose is open!')
});

//Schema是mongoose的数据格式的设置,一切基于Schema. 
//这里设置了一个数据为string的name 
var kittySchema = mongoose.Schema({
  name: String
});

//我们还能为此数据库设置回调函数
kittySchema.methods.speak = function () {
  var greeting = this.name
    ? 'Meow name is ' + this.name
    : 'I dont have name';
  console.log(greeting);
}

//这里的Kitten在mongoDB里面是一个document的类
//而括号里面的kitten是一个集合collection
//有趣的是括号里的kitten是单数。
//但是存储到数据库里面的collection会自动变成复数kittens.
//如果你的代码里面写的集合名字是person,那么数据库里面名字则是people
//这些你可以在下面的客户端展示里面看到 
//这只能是在methods后面设置
var Kitten = mongoose.model('kitten', kittySchema);

//设置一条叫fluffy的数据,这是Kitten document 类的一个实例。
var fluffy = new Kitten({ name: 'fluffy' });

//保存此数据,并且保存成功后触发回调函数
fluffy.save(function (err, fluffy) {
  if (err) return console.log(err);
  fluffy.speak();
});

//可以通过正则表达式找到此数据并且触发回调函数
Kitten.find({ name: /^fluff/ }, function (err, kittens) {
  if (err) return console.log(err);
  console.log(kittens);
  console.log(kittens[0].name);
})

我们先注释掉Kitten.find这个函数, 看下控制台的结果:
这里写图片描述

这里显示open()已经废弃,可以在新版本用openUri取代

接下来我们注释掉fluffy.save函数,然后看看查找结果,
我们找到了这条数据,此数据是以数组形式存在的,所以要得到里面的值的话,要用访问数组的方式来。

这里写图片描述

我们用mongoDB客户端来看下里面的数据长什么样,这里用的是Robo 3T

这里写图片描述

这里看到 :

  • test是一个db
  • kittens 是一个集合
  • fluffy是一条document (客户端中未显示)
阅读更多
文章标签: mongodb 数据库
个人分类: 数据库 mongodb mysql
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭