猫鼬删除(拉)的阵列中的文档时,不与工作的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) {
...
});