【问题标题】:Removing all embedded documents删除所有嵌入的文档
【发布时间】:2012-05-15 09:56:04
【问题描述】:

我想从集合中删除所有嵌入的文档,但我不知道该怎么做。

我尝试了几种方法,但我认为这个应该可行:

Products.update({_id: data._id}, { $pull : { orders : {$gte: 0} } });

Products 是集合,orders 是嵌入文档的数组。

删除所有索引大于等于0的orders

运气不好。

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    试试这个

    db.products.update({_id: data._id},
                       {$unset: {orders: 1}})
    

    或者这个

    db.products.update({_id: data._id},
                       {$set: {orders: []}})
    

    【讨论】:

    • 您好,感谢您的回答。我没有对此投反对票,我不知道这是谁做的。我会尝试这些方法,并给+1;
    • 我没有看到反对意见,但如果可行,欢迎您投赞成票(并接受):)
    • 哇,奇怪的是这两个都不起作用,我想我已经尝试过它们了。 id 部分是正确的,我可以找到正确的产品,并且可以控制台记录订单数组。但是 set 或 unset 都不能解决问题。可能是该集合以某种方式被锁定。还是更新后需要保存?
    • @SaifBechan:它肯定可以工作。见这里:pastebin.com/BuFnCPrF 你在 db shell 中尝试吗?
    • 多么令人讨厌。好吧,感谢您确认这应该有效。将尝试找出我的问题所在。
    猜你喜欢
    • 2018-07-24
    • 2011-04-11
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多