2

使用 Spring Data (1.1.0.M1) 有没有办法确定删除了多少文档?

目前我在类上使用该remove()方法MongoTemplate,但它不返回任何关于操作的信息。

如果没有通过MongoTemplate,是否有其他方法可以删除文档并找出删除了多少?

4

2 回答 2

9

当您在 MongoDB 中写入文档(包括删除)时,您可以调用getLastError()来查看您上次写入操作的效果。

您遇到的问题是,当没有错误时,您仍然想知道有多少对象(文档)受到您的操作的影响。

在 shell 中,您可以通过检查返回的对象来查看详细信息getLastErrorObj()。在 Java 中,Mongo Java 驱动程序提供了等效的方法。

在删除操作的情况下,该字段"n"将对应于受影响文档的数量。这是一个示例的一小部分:

import com.mongodb.WriteResult;
...
   WriteResult wr = collection.remove(new BasicDBObject());  // removes everything
   System.out.println(wr.getN());        // prints the number of removed documents
于 2012-06-02T02:46:38.590 回答
0

我对 MongoDB 没有太多经验,因为我是新手,不确定我要推荐的内容是否适用于您的情况。将标志 safe=true 传递给查询时,它会返回一个键“n”,该键显示查询中受影响的行数。你应该调查一下。。

于 2012-06-01T23:53:34.063 回答