我正在使用Monger库从Clojure访问Mongo数据库。有一件让我恼火的事情是在ObjectId实例和字符串之间来回切换。将Mongodb ObjectId自动映射到字符串和从字符串映射
例如,该代码(mc/find-maps "posts" {})
将评估到的地图,_id
项设置为ObjectId
类的实例,而在我的应用我觉得更有用简单地把它作为一个字符串,我知道它的价值是独特的。
另一方面,对于像(mc/find-map-by-id "posts" (new ObjectId id))
这样的表达式,我使用String对象作为参数id
,我必须用它来构造一个ObjectId
的实例。
有没有办法让_id
的值在应用程序中的字符串和mongo端的ObjectId之间自动,透明地转换?某些选项在启用时会创建带有字符串表示形式的映射,反之亦然可以在查询中用作参数时转换对象id的字符串表示形式?
如果不是,还有哪些其他策略可用?