MongoError 异常:FieldPath 字段名称可能不以“$”开头

Posted

技术标签:

【中文标题】MongoError 异常:FieldPath 字段名称可能不以“$”开头【英文标题】:MongoError exception: FieldPath field names may not start with '$' 【发布时间】:2015-06-25 23:18:06 【问题描述】:

我们刚刚将 AWS 上的基础设施从一个账户迁移到另一个账户。 服务器上安装的mongo版本是2.4.9 我是 MongoDb 的新手,在运行 Web 应用程序时遇到以下 2 个错误 -

"name":"MongoError","errmsg":"exception: FieldPath field names may not start with '$'.","code":16410,"ok":0

"name":"MongoError","errmsg":"exception: the $cond operator requires an array of 3 operands","code":16019,"ok":0

该网络应用正在处理我们之前的实例。谁能指出我正确的方向?

【问题讨论】:

这里提供查询会更好。 mongo 2.6 和 2.4 中的包名称发生了变化。此链接可能对您有用 - ***.com/questions/23011193/… 您能否提供您的 MongoDB 驱动程序版本和查询示例?另外,您之前迁移的 MongoDB 驱动程序和服务器版本是什么? 我们遇到此错误的部分示例查询: $group: _id: "$brand_id", twitter: $push: "$$ROOT" 问题是,我们以前的服务器实例已终止,我们无法检查我们在它们上使用的版本。但是,我几乎可以肯定它是 2.6。如何检查我的 MongoDb 驱动程序版本?另外,如果我将 mongodb 版本从 2.4 更新到 2.6,是否需要备份? 【参考方案1】:

升级到最新的 mongodb (3.0.2) 帮助我解决了这个问题。

附: - 确保使用 killall -15 而不是 pkill -9 杀死已经运行的 mongod 进程,因为后者可能会造成损坏。

【讨论】:

以上是关于MongoError 异常:FieldPath 字段名称可能不以“$”开头的主要内容,如果未能解决你的问题,请参考以下文章

在嵌套对象中使用firestore的FieldPath.documentId()

k8s 通过环境变量获取Pod信息

MongoError:无法在本地运行项目

MongoError $regex 必须是一个字符串

MongoError:套接字挂起

MongoError:套接字挂起