我想看看insert delete ect的结果。 (写操作) 我使用Mongo 2.6和spring-data-mongodb 1.5.4 我知道,因为mongo v 2.6可以看到WriteResult(http://docs.mongodb.org/manual/reference/method/db.collection.insert/看到返回),是否有可能在spring-data-mongo中看到它?
谢谢!
答案 0 :(得分:0)
您所引用的BulkWriteResult的唯一位置是使用Bulk Operations API的操作结果。
这是从MongoDB 2.6开始引入的,因此它至少需要在服务器上使用该版本才能工作。您将在shell中看到这些响应,因为从该版本开始,shell中的所有辅助方法实际上都使用" bulk"命令的变体"引擎盖"。因此,即使只调用了一个操作,它实际上也使用了" bulk"连接到支持它的服务器时,引擎盖下的变种。
批量操作在底层Java驱动程序中实现,但您需要从Spring mongoOperations上下文中获取该底层驱动程序集合对象,然后才能调用它们。
因此,方法签名和返回与Spring Data实现的方法不同,但它们是基本的驱动程序方法。但是当然你仍然可以访问它们并在你的代码中使用它们:
DBCollection collection = mongoOperation.getCollection("collection");
BulkWriteOperation bulkWriteOperation =
collection.initializeOrderedBulkOperation();
DBObject content = new BasicDBObject("field","value");
bulkWriteOperation.insert(content);
BulkWriteResult writeResult = bulkWriteOperation.execute();
System.out.println(writeResult);
也许有一天整合会更加完整。但目前这是基于核心驱动程序的大多数框架实现滞后的一个领域。事实上,核心驱动程序目前在遗留方法和批量方法之间分开,因此任何一般实现最好像助手一样在shell中进行处理,以实现向后兼容性。