【发布时间】:2012-06-01 23:43:06
【问题描述】:
使用 Spring Data (1.1.0.M1) 有没有办法确定删除了多少文档?
目前我在MongoTemplate 类上使用remove() 方法,但它不返回任何关于操作的信息。
如果不是通过MongoTemplate,是否有其他方法可以删除文档并找出删除了多少?
【问题讨论】:
标签: mongodb spring-data
使用 Spring Data (1.1.0.M1) 有没有办法确定删除了多少文档?
目前我在MongoTemplate 类上使用remove() 方法,但它不返回任何关于操作的信息。
如果不是通过MongoTemplate,是否有其他方法可以删除文档并找出删除了多少?
【问题讨论】:
标签: mongodb spring-data
当您在 MongoDB 中写入文档(包括删除)时,您可以调用 getLastError() 以查看您上次写入操作的效果。
你遇到的问题是,在没有报错的情况下,你还想知道你的操作影响了多少对象(文档)。
在 shell 中,您可以通过检查 getLastErrorObj() 返回的对象来查看详细信息。在 Java 中,Mongo Java 驱动程序提供了methods 来做同样的事情。
在删除操作的情况下,"n" 字段将对应受影响文档的数量。这是一个小sn-p的例子:
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”,该键显示查询中受影响的行数。你应该调查一下..
【讨论】: