【问题标题】:How to specify UUID in mongo $where clause如何在 mongo $where 子句中指定 UUID
【发布时间】:2011-06-16 11:04:43
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2019-01-22
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2011-02-06
      相关资源
      最近更新 更多