最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

猫鼬删除(拉)的阵列中的文档时,不与工作的ObjectID

IT培训 admin 6浏览 0评论

猫鼬删除(拉)的阵列中的文档时,不与工作的ObjectID

我有以下的猫鼬的模式:

user = {
    "userId" : "myId",
    "connections":
    [{
        "dateConnectedUnix": 1334567891,
        "isActive": true
    }, {
        "dateConnectedUnix": 1334567893,
        "isActive": false
    }]
}

我想删除第二项connections阵中,得到如下:

user = {
    "userId" : "myId",
    "connections": 
    [{
        "dateConnectedUnix": 1334567893,
        "isActive": false
    }]
}

下面的代码不会如预期的那样工作:

userAccounts.update({'connections.isActive': false }, 
                    {$pull: { 'connections.isActive':false }}, 
                    function (err,val) {
                        console.log(val)
                    });

但是,我需要的基础上删除的ObjectId。而下面的那张不工作:

userAccounts.update({'connections._id': '1234-someId-6789' }, 
                    {$pull: { 'connections._id': '1234-someId-6789' }}, 
                    function (err,val) {
                        console.log(val)
                    });

有什么建议么?我一直在敲我的头靠在屏幕(又名谷歌,#2,...)几个小时,有没有运气。

回答如下:

看来,上面的代码是行不通的。它甚至不应该工作了我给的第一个例子。

MongoDB, remove object from array:最后,我被这个答案在这里支持

这是我工作的代码:

userAccounts.update( 
      { userId: usr.userId },
      { $pull: { connections : { _id : connId } } },
      { safe: true },
      function removeConnectionsCB(err, obj) {
          ...
      });

猫鼬删除(拉)的阵列中的文档时,不与工作的ObjectID

我有以下的猫鼬的模式:

user = {
    "userId" : "myId",
    "connections":
    [{
        "dateConnectedUnix": 1334567891,
        "isActive": true
    }, {
        "dateConnectedUnix": 1334567893,
        "isActive": false
    }]
}

我想删除第二项connections阵中,得到如下:

user = {
    "userId" : "myId",
    "connections": 
    [{
        "dateConnectedUnix": 1334567893,
        "isActive": false
    }]
}

下面的代码不会如预期的那样工作:

userAccounts.update({'connections.isActive': false }, 
                    {$pull: { 'connections.isActive':false }}, 
                    function (err,val) {
                        console.log(val)
                    });

但是,我需要的基础上删除的ObjectId。而下面的那张不工作:

userAccounts.update({'connections._id': '1234-someId-6789' }, 
                    {$pull: { 'connections._id': '1234-someId-6789' }}, 
                    function (err,val) {
                        console.log(val)
                    });

有什么建议么?我一直在敲我的头靠在屏幕(又名谷歌,#2,...)几个小时,有没有运气。

回答如下:

看来,上面的代码是行不通的。它甚至不应该工作了我给的第一个例子。

MongoDB, remove object from array:最后,我被这个答案在这里支持

这是我工作的代码:

userAccounts.update( 
      { userId: usr.userId },
      { $pull: { connections : { _id : connId } } },
      { safe: true },
      function removeConnectionsCB(err, obj) {
          ...
      });
发布评论

评论列表 (0)

  1. 暂无评论