2016-11-14 40 views
0

我正努力在我的服務器上運行帶有Mongo的NodeExpress應用程序。當試圖寫入數據庫時​​發生以下錯誤。只有某些模型似乎產生這種失敗,其他模式沒有問題。

它特別奇怪,因爲它在我的本地機器上沒有任何問題。使用相同的節點和MongoDB版本,通過git同等部署機器人。

錯誤確實沒有提供有關在哪裏查找錯誤的很多信息。任何人都有一個提示從哪裏開始?

Error: key $conditionalHandlers must not start with '$' 
    at Error (native) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:741:19) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:766:17) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:766:17) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:608:17) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:766:17) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:608:17) 
    at serializeObject (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:300:18) 
    at serializeInto (/root/casinofuchs/node_modules/bson/lib/bson/parser/serializer.js:766:17) 
    at serialize (/root/casinofuchs/node_modules/bson/lib/bson/bson.js:49:27) 
    at Query.toBin (/root/casinofuchs/node_modules/mongodb-core/lib/connection/commands.js:143:25) 
+0

可能的重複:http://stackoverflow.com/questions/19643732/error-key-conditionalhandlers-must-not-start-with-mongodb – Jackowski

+0

我見過這種威脅,雖然沒有真正適用於我的情況。我的模式是有序的。 – Seltsam

回答

1

此錯誤消息表明字段名稱違反了MongoDB命名限制。具體而言,字段名稱爲must not start with a dollar sign character

+0

Mh。我的模特里沒有美元符號charakter。另外,爲什麼它運行在我的Mac上,也在docker-container中,而不是在我的Ubuntu服務器上運行? – Seltsam

0

看來我發現了這個問題。

我在模型有以下definiton:

logo:{ type:[ImageSchema], default:[ImageSchema] } 

切換這回:

logo:{ type:[ImageSchema] } 
    or 
    logo:[ImageSchema] 

...使它重新工作。

即使在我的Macbook上,現在也不知何故停止工作。 難道是這樣嗎,最近有一些插件的更新導致了這個失敗?

什麼是適當的解決方案,在這種情況下有一個ImageSchema的默認值?