Mongodb 找到不支持的投影选项
Posted
技术标签:
【中文标题】Mongodb 找到不支持的投影选项【英文标题】:Mongo DB find unsupported projection option 【发布时间】:2021-09-21 02:05:06 【问题描述】:大家好,我对 mongoDB find 命令有一点问题,我正在寻找它的用法,但我正在尝试使用相同文档模型的相同命令,但它在我的服务器上不起作用,但在这个网站上可以工作,任何人都可以给我解释一下? 网络服务器文档:
"_id":ObjectId("60eb509db0f1b4e8a07aaf40),
"item":"journal",
"status":"A",
"size":
"h":14,
"w":21,
"uom" : "cm"
我的代码:
db.inventory.find(, "size": "uom":1).pretty()
它给了我 uoms 价值, 但这不适用于我的服务器文档:
"normalized": true,
"payload":
"client_ip" : "1.1.1.1",
"dist" : "13",
"server_ip":"1.1.1.1",
"timestamp":2021/07/09 22:00:05",
"subject": "cli"
我的代码:
db.hpfeed.find(, "payload":"client_ip":1)
输出
错误:错误: “好”:0, “errmsg”:“不支持的投影选项:有效载荷:client_ip:1.0”, “代码”:2, "codeName" : "BadValue"
【问题讨论】:
请考虑将您的代码放在这里,以便于理解问题。 您正在运行不同版本的 MongoDB。第二种情况的投影仅来自 4.4 @AvaniKhabiya ım 抱歉,我只是想向您展示我的文档模型 ıtought 这是最简单的方法:/ 请不要粘贴图片,使用格式化文本。请参阅meta.***.com/a/285557/3027266 - 日期/时间值从不存储为文本,使用正确的Date
对象
【参考方案1】:
经过大量尝试,我找到了解决方案:
db.hpfeed.find(, "payload.client_ip":1)
【讨论】:
没有人让您询问如何更改查询。这实际上是最常见的编写方式(javascript 方式),因为通常不支持另一种方式。您可以使用mongo --version
查看版本【参考方案2】:
您可能在不同的 MongoDB 版本上进行测试。来自文档:
对于嵌入文档中的字段,您可以使用以下任一方式指定字段: * 点符号;例如“field.nestedfield”: 嵌套形式;例如 field: nestedfield: (从 MongoDB 4.4 开始)
Source
【讨论】:
以上是关于Mongodb 找到不支持的投影选项的主要内容,如果未能解决你的问题,请参考以下文章
为啥 PyMongo 在列出集合时给出不支持的投影选项:$substr?