我有一个简单的工具,用于构建文档集合,然后自动将它们格式化为 EPUB 或 LaTeX 渲染,编写在 ExpressJS 之上。我正在使用 Coffeescript,如果这很重要(我对此表示怀疑)。
使用猫鼬,我有以下内容:
DocumentSchema = new Schema
title: String
Offrefs = new Schema
ref: { type: ObjectId }
isa: String
BinderSchema = new Schema
title: String
contains: [Offrefs]
Offrefs 没有指定它所指的内容,因为我希望能够在其他活页夹中包含一些活页夹,以创建逻辑集合:“这些用于打印机,”“这些用于 epub”,“这些仅用于网络, "等(我已经把所有杂项都去掉了。)
不幸的是,我遇到了查询,对于检索到的对象
(story._id == offref.ref) -> True
而且两者确实看起来一样。但:
(binder._id == offref.ref) -> False
(String(binder._id) == String(offref.ref)) -> True
并且对最后两个中的两个引用进行视觉比较,它们是相同的 ID 号,但ObjectId
对象没有正确比较。
我不想不断地进行字符串转换,当我将这些复杂的对象转换为数据树时,这是一个很大的可能性。树关系在任何数据库中都是熊;它们在 MongoDB 中应该不难。
你如何在 MongoDB 中进行 ObjectId 比较?