搜索

首页  >  问答  >  正文

mongodb - mongoose如何向数组属性添加或者删除文档?

像下面这个例子,如果我要向lists数组继续添加或者删除文档,我应该怎么操作?谢谢!

{
    "_id" : ObjectId("590a77315a7ae88824b296cf"),
    "user" : "yejia@qq.com",
    "password" : "5475442343",
    "lists" : [
        {
            "create_at" : "1234",
            "update_at" : "1234",
            "title" : "yejia",
            "list_id" : 123
        }
    ]
}
伊谢尔伦伊谢尔伦2740 天前684

全部回复(1)我来回复

  • 黄舟

    黄舟2017-05-17 10:05:17

    pull和push,和MongoDB Node.JS Driver一样的。

    参考下面的用法:

    Model.update({ }, {’$pull’:{ } } );

    Model.update({ }, {’$push’:{ } } );

    供参考

    Love MongoDB! Have Fun!


    Mongoose的pull和push的语法参考如后:

    var schema = new mongoose.Schema({ user: 'string', password: 'string', lists: [ {create_at: 'string', update_at: 'string', title: 'string', list_id: 'number'}]});
    
    var User = mongoose.model('User', schema,'test');
    
    //删除
    User.update({"user" : "yejia@qq.com"}, 
    {'$pull':{ lists : { list_id : 123 }}}, function(err, data){
        if(err) {
            console.log(err);}
        console.log(data);
        });
    
    //添加
    User.update({"user" : "yejia@qq.com"}, 
    {'$push':{ lists : { create_at: '111', update_at: '222', title: 'test', list_id: 8888}}}, function(err, data){
        if(err) {
            console.log(err);}
        console.log(data);
        });
    
    //打印结果
    User.find({},function(err,result){
        console.log(result);
    });
    

    回复
    0
  • 取消回复