2

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

问题是我应该指定什么而不是???让它工作?

谢谢你的帮助。

4

1 回答 1

0

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

于 2011-06-24T09:33:26.910 回答