Как указать UUID в предложении mongo $ where - PullRequest
2 голосов
/ 16 июня 2011

У меня есть объект, который был сохранен с помощью mongo-java-driver.Объект использует java.util.UUID для своего поля _id.Ниже приведено представление объекта через оболочку mongo:

> 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 голосов
/ 24 июня 2011

Мои исследования показали, что единственный способ сделать это - переписать запрос объектно-ориентированным способом (я имею в виду перенос части $ where в запрос на основе BasicDBObject).В таком случае mongo-java-driver поддерживает java.util.UUID без каких-либо дополнительных усилий.

...