Php 如何查看从mongo删除的记录?

Php 如何查看从mongo删除的记录?,php,mongodb,symfony,Php,Mongodb,Symfony,我有一个数组,其中包含一些ID,我想从mongo中删除没有数组ID的记录 我用了这个密码 编辑 `> db.people.remove({ "_id" : { $nin: ["1","2","3"] }});` 结束编辑 `> db.people.remove({ "_id" : { $nin: ["1","2","3"] }});` 我从这里得到了灵感 我需要看看哪些记录被删除了。有没有直接从查询中获取数据的方法 我宁愿避免使用从mongo搜索当前数据的方法,然后查看我的数组与

我有一个数组,其中包含一些
ID
,我想从mongo中删除没有数组ID的记录

我用了这个密码

编辑

`> db.people.remove({ "_id" : { $nin: ["1","2","3"] }});`
结束编辑

`> db.people.remove({ "_id" : { $nin: ["1","2","3"] }});`
我从这里得到了灵感

我需要看看哪些记录被删除了。有没有直接从查询中获取数据的方法

我宁愿避免使用从mongo搜索当前数据的方法,然后查看我的数组与mongo数组之间的差异


我将此应用于Symfony2,因此如果有人有一些建议,这将是非常棒的

db.people.remove
不会返回已删除的文档,但它会返回已删除文档的数量,以便您可以检查它们是否已成功删除

以下是一种您可以随心所欲的方法,但它可能适合您的应用程序,也可能不适合您的应用程序:

  • 查找要删除的文档集
  • 将它们保存在内存中(即,将它们存储为分配给变量的列表)
  • 执行删除操作
  • 检查已删除文档的数量以确保成功
  • 如果成功,则显示变量中的文档

  • 或者,您可以使用findAndModify命令。这将返回已删除的文档,但一次只返回一个文档,因此您需要执行某种循环。

    对不起,我知道我在问题上所做的只是搜索记录,而不是删除记录。我试着用一个例子来说明我所做的(几乎),这样人们就会明白我想做什么(我的缺点是在帖子中“查找”而不是“删除”)。我设法删除了不在我的ID数组中的记录。您建议“查找要删除的文档集”。你知道除了我说的我想避免的方法之外,我还能用什么方法吗?我不认为我建议的方法正是你想避免的方法。。。不过没关系。这可能会有所帮助:。我编辑了我的答案,但链接并不能解决我的问题:“findAndModify”对我不起作用。我不知道需要删除哪些值,因此无法搜索并删除它们。这就是我需要找到的:从我的问题中运行查询后,哪些值被删除。但感谢您的关注和帮助。您可以使用$nin查找和修改真正的问题是“为什么它对您很重要?”。在什么情况下,知道哪些提供的值导致匹配和随后的删除,哪些根本没有找到,对您有什么好处?真的不应该有这样的情况。如果您正在尝试“同步”,那么从一个源中删除所有内容,并且如果您实际上不匹配任何要从另一个源中删除的内容,这应该无关紧要。如果您对此一定很迂腐,那么在返回原始文档时,循环值数组并发出
    .findAndModify()
    null
    表示找不到。这很重要,因为我想跟踪那些被删除的,但我不想做两个不同的查询。