4
當我試圖使用query
作爲引用字段的鍵名時,我遇到了MongoDB v2.0.7的這種奇怪行爲。「查詢」是MongoDB中的保留名稱嗎?
如果我插入一個名爲query
參考字段的記錄,MongoDB的失敗檢索對象:
> db.item.insert({query: {$ref: "query", $id: ObjectId("50361887352fc04c86af4c10")}})
> db.item.find({query: {$ref: "query", $id: ObjectId("50361887352fc04c86af4c10")}})
>
但是,如果我改變字段的名稱query_
,一切都很好:
> db.item.insert({query_: {$ref: "query", $id: ObjectId("50361887352fc04c86af4c10")}})
> db.item.find({query_: {$ref: "query", $id: ObjectId("50361887352fc04c86af4c10")}})
{ "_id" : ObjectId("503619f0dd2290f4bb17a275"), "query_" : { "$ref" : "query", "$id" : ObjectId("50361887352fc04c86af4c10") } }
它也是細如果字段具有簡單的非複合值:
> db.item.insert({query: ObjectId("50361887352fc04c86af4c10")})
> db.item.find({query: ObjectId("50361887352fc04c86af4c10")})
{ "_id" : ObjectId("50361b44dd2290f4bb17a276"), "query" : ObjectId("50361887352fc04c86af4c10") }
我錯過了什麼,或者這是一個MongoDB錯誤?
謝謝。這是一個非常惱人的錯誤。我正在使用MongoEngine,它花了我一天的時間來找出問題的原因。 –
請爲這個bug投票。現在,只有我在那裏... – Thilo
我投票並在評論中解釋了我的情況。 –