我有一個直接的工具來構建文檔集合,然後自動格式化它們以用於在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