Mongoose 基础

整体设计

以mongoose对象为中心,建立起来的API系统,mongoose对象负责连接的建立,维持,数据结构的建立,模型的管理等工作。

连接管理

mongoose.connect("mongodb://localhost:27017/demo01")
    .then(function () {
      console.log("连接成功")
      server.listen(port);//启动express
      server.on('error', onError);
      server.on('listening', onListening);
      
      // mongoose.disconnect();
    })

模型管理

const mongoose=require('mongoose')
//数据结构的建立
mongoose.model("userSchema",{uname:String,age:Number});
//模型的管理
let User=mongoose.model("userSchema");

Model扮演了重要的角色

从mongoose对象中获取的Model扮演了数据管理者的角色

建立Collection及插入Document

var Tank = mongoose.model('Tank', yourSchema);

var small = new Tank({ size: 'small' });
small.save(function (err) {
  if (err) return handleError(err);
  // saved!
});
// or
Tank.create({ size: 'small' }, function (err, small) {
  if (err) return handleError(err);
  // saved!
});

// or, for inserting large batches of documents
Tank.insertMany([{ size: 'small' }], function(err) {

});

查询

Tank.find({ size: 'small' }).where('createdDate').gt(oneYearAgo).exec(callback);

删除

Tank.deleteOne({ size: 'large' }, function (err) {
  if (err) return handleError(err);
  // deleted at most one tank document
});

更新

Tank.updateOne({ size: 'large' }, { name: 'T-90' }, function(err, res) {
  // Updated at most one doc, `res.modifiedCount` contains the number
  // of docs that MongoDB updated
});

测试用mongo数据

基础测试


db.users.drop();

db.users.insert({uname:'john',age:100,sex:true});

db.users.insert({uname:'johnson',age:67,sex:true});

db.users.insert({uname:'tom',age:98,sex:false});

db.users.insert({uname:'john',age:12,sex:true});

db.users.insert({uname:'alice',age:76,sex:false});

db.users.insert({uname:'mike',age:9,sex:true});


db.users.insert({uname:'cindy',age:30,sex:false,major:'SE'});

db.users.insert({uname:'danny',age:30,sex:true,major:null});

猴子与水果

db.monkey.insert({_id:1,name:'m1',fruit:['apple','bana','peach']}); 

db.monkey.insert({_id:2,name:'m2',fruit:['bana','peach','apple']}); 

db.monkey.insert({_id:3,name:'m3',fruit:['apple','peach']}); 

db.monkey.insert({_id:4,name:'m4',fruit:['kumquat','bana','peach']});

db.monkey.insert({_id:5,name:'m5',fruit:[]});

贴子评论

db.posts.insert({_id:1,title:'t1',date:new Date(1999,10,2),author:'john',content:'c1',comments:[{author:'li',comment:'cc1',score:3},{author:'bu',comment:'cc2',score:5}]});

db.posts.insert({_id:2,title:'t2',date:new Date(1998,09,12),author:'tom',content:'c2',comments:[{author:'bai',comment:'cc2',score:5},{author:'li',comment:'zhan',score:5}]});

db.posts.insert({_id:3,title:'xx1',date:new Date(2001,9,18),author:'mike',content:'ttx',comments:[{author:'john',comment:'cc5',score:5}]});

db.posts.insert({_id:4,title:'ww2',date:new Date(2102,10,9),author:'li',content:'nw',comments:[]});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容