【发布时间】:2015-09-29 23:43:43
【问题描述】:
我有一个包含一些 IDs 的数组,我想从 mongo 中删除没有我数组中的 id 的记录。
我使用了这个代码
编辑
`> db.people.remove({ "_id" : { $nin: ["1","2","3"] }});`
结束编辑
我从这里得到灵感How do I do a "NOT IN" query in Mongo?
我需要查看删除了哪些记录。有没有一种方法可以直接从查询中获取数据?
我宁愿避免使用从 mongo 搜索当前数据的方法,然后查看我的数组与 mongo 的数组之间的差异。
我将这个应用到 Symfony2,所以如果有人有一些建议,那就太棒了
【问题讨论】:
-
真正的问题是“为什么它对你很重要?”。在什么情况下,知道哪些提供的值导致匹配并随后被删除,哪些根本没有找到,对您有什么好处?真的不应该有任何情况。如果您尝试“同步”,则从一个源中删除所有内容,如果您实际上不匹配任何内容以从另一个源中删除,则无关紧要。如果您必须对此如此迂腐,那么循环值数组并在返回原始文档时发出
.findAndModify()。null表示未找到。但从不散装。 -
这很重要,因为我想跟踪被删除的那些,但我不想进行两个不同的查询。