使用Spring Data(1.1.0.M1)有一种方法可以确定删除了多少文档?
目前我在MongoTemplate
类上使用remove()
方法,但它不返回任何有关操作的信息。
如果不是通过MongoTemplate
,是否有不同的方法来删除文档并找出删除了多少文件?
答案 0 :(得分:9)
当您在MongoDB中编写文档(包括删除)时,您可以调用getLastError()来查看上一次写操作的效果。
您遇到的问题是,当没有错误时,您仍然想知道您的操作会影响多少个对象(文档)。
在shell中,您可以通过检查getLastErrorObj()
返回的对象来查看详细信息。在Java中,Mongo Java驱动程序提供methods来执行等效操作。
如果是删除操作,字段"n"
将对应于受影响文档的数量。这是一个例子的小片段:
import com.mongodb.WriteResult;
...
WriteResult wr = collection.remove(new BasicDBObject()); // removes everything
System.out.println(wr.getN()); // prints the number of removed documents
答案 1 :(得分:0)
我对MongoDB没有多少经验,因为我不熟悉它,不确定我要推荐的内容是否适用于你的情况。将flag safe = true传递给查询时,它返回一个键'n',显示查询中受影响的行数。你应该调查它..