我有以下猫鼬模式:
user = { "userId" : "myId", "connections": [{ "dateConnectedUnix": 1334567891, "isActive": true }, { "dateConnectedUnix": 1334567893, "isActive": false }] }
我想删除connections数组中的第二项,以获取以下信息:
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) });
有什么建议?我一直将头撞在屏幕上(又名Google,Stackoverflow等),却没有运气。
似乎以上代码无法正常工作。对于我给出的第一个示例,它甚至都不起作用。
这是我的工作代码:
userAccounts.update( { userId: usr.userId }, { $pull: { connections : { _id : connId } } }, { safe: true }, function removeConnectionsCB(err, obj) { ... });