如何在mongo $ where子句中指定UUID

时间:2011-06-16 11:04:44

标签: java mongodb where-clause uuid mongo-java

我有一个通过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()

问题是我应该指定什么而不是???才能使其有效?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我的调查表明,只有一种方法是以对象方式重写查询(我的意思是将$ where子句部分迁移到基于BasicDBObject的查询)。在这种情况下,mongo-java-driver支持java.util.UUID而无需任何额外的努力。

相关问题