使用 Spring Data (1.1.0.M1) 有没有办法确定删除了多少文档?
目前我在类上使用该remove()
方法MongoTemplate
,但它不返回任何关于操作的信息。
如果没有通过MongoTemplate
,是否有其他方法可以删除文档并找出删除了多少?
使用 Spring Data (1.1.0.M1) 有没有办法确定删除了多少文档?
目前我在类上使用该remove()
方法MongoTemplate
,但它不返回任何关于操作的信息。
如果没有通过MongoTemplate
,是否有其他方法可以删除文档并找出删除了多少?
当您在 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
我对 MongoDB 没有太多经验,因为我是新手,不确定我要推荐的内容是否适用于您的情况。将标志 safe=true 传递给查询时,它会返回一个键“n”,该键显示查询中受影响的行数。你应该调查一下。。