我有一个通过mongo-java-driver存储的对象。对象使用java.util.UUID
作为其_id
字段。以下是通过mongo shell呈现对象:
> db.b.find()
{ "_id" : BinData(3,"zUOYY2AE8WZqigtb/Tqztw==") }
我需要通过$where
子句处理搜索。我使用以下代码来执行此操作:
Mongo m = new Mongo();
DBCollection coll = m.getDB("a").getCollection("b");
coll.save(new BasicDBObject("_id", UUID.randomUUID()));
// ??? - don't know what should be specified
DBObject query = new BasicDBObject("$where", "this[\"_id\"] == " + ???);
coll.find(query).count()
问题是我应该指定什么而不是???
才能使其有效?
感谢您的帮助。
答案 0 :(得分:0)
我的调查表明,只有一种方法是以对象方式重写查询(我的意思是将$ where子句部分迁移到基于BasicDBObject的查询)。在这种情况下,mongo-java-driver支持java.util.UUID而无需任何额外的努力。