MongoDB错误错误:键$ conditionalHandlers不能以' $'开头。

时间:2016-11-14 19:09:03

标签: node.js mongodb express

我在服务器上使用Mongo运行我的NodeExpress应用程序时遇到了困难。尝试写入以写入DB时,会发生以下错误。只有某些模型似乎会产生这种失败,其他模型的运行没有问题。

它特别奇怪,因为它在我的本地机器上运行没有任何问题。使用Same Node和MongoDB版本,bot通过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)

2 个答案:

答案 0 :(得分:1)

此错误消息表明字段名称违反了MongoDB命名限制。具体而言,字段名称为must not start with a dollar sign character

答案 1 :(得分:1)

好像我发现了这个问题。

我的模型中有以下定义:

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

将其切换回:

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

......让它再次发挥作用。

这甚至在我的Macbook上停止了工作。 可能是,这些天有一些插件的更新导致这个失败了吗?

在这种情况下,为ImageSchema设置默认值的适当解决方案是什么?