【发布时间】:2012-07-13 17:52:18
【问题描述】:
我正在使用 Monger 库从 Clojure 访问 Mongo 数据库。让我烦恼的一件事是在 ObjectId 实例和字符串之间来回切换。
例如,此代码 (mc/find-maps "posts" {}) 将评估为将 _id 条目的值设置为 ObjectId 类实例的映射,而在我的应用程序中,我发现简单地将其作为字符串用于我知道它是独一无二的。
另一方面,对于像(mc/find-map-by-id "posts" (new ObjectId id)) 这样的表达式,我确实为id 参数使用了一个String 对象,我必须使用它来构造ObjectId 的一个实例。
有没有办法让_id的值在应用程序中的Strings和mongo端的ObjectId之间自动透明地转换?某种选项,当启用时,创建带有 id 的字符串表示形式的映射,反之亦然,当用作查询中的参数时,将字符串表示形式的 ids 转换为对象 ids?
如果没有,还有哪些其他可用的策略?
【问题讨论】: