我有一个直接的工具来构建文档集合,然后自动格式化它们以用于在ExpressJS上编写的EPUB或LaTeX呈现。我使用Coffeescript,如果重要的话(我怀疑它)。Mongoose:ObjectId比较失败并不一致
使用猫鼬,我有以下几点:
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比较?
耶,无证的功能。 – peterjwest
所以这和mongoose.Schema.Types.ObjectID不一样? 他们的文档暗示它只有'auto'方法: http://mongoosejs.com/docs/api.html#schema-objectid-js – peterjwest
@peterjwest右键,'mongoose.Schema.Types.ObjectId'真的只是用作模式定义中的字段型元数据。 – JohnnyHK