【发布时间】:2013-03-21 08:54:20
【问题描述】:
我正在尝试从 MongoDB 文档中的数组中删除一些项目:
doc1
items
item
id=1
item
id=2
item
id=3
doc2
items
item
id=4
item
id=5
item
id=6
我用它来删除例如项目 id=5:
(...)
updateItems({'items.id': 5}, { $unset: { 'items.$': 1 }}, { $pull: {'items' : null} });
(...)
function updateItems(objmatch, objunset, objpull){
coremodels.getProfileTable(req).update(
objmatch,
objunset,
{multi: true}, function(err) {
coremodels.getProfileTable(req).update(
objmatch,
objpull,
{multi: true}, function(err) {
console.log('COMPLETED');
});
(...)
$unset 工作正常,但 $pull 似乎没有工作。此操作的最终结果是一个空(Null)项 5。
任何想法为什么 $pull 不删除空文档?
非常感谢。
【问题讨论】:
-
找到了这个答案,这表明您正在尝试做的事情应该有效:stackoverflow.com/a/4970050/893113
-
谢谢,是的,我几乎遵循了这个例子。