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?

错误:不支持选项 gssapiservicename

错误:不支持选项 gssapiservicename

MongoParseError:不支持选项 poolsize、usenewurlparse

MongoDB 属性Read Preference

CosmosDB MongoDB 适配器投影不起作用