【问题标题】:Mongo DB find unsupported projection optionMongodb 找到不支持的投影选项
【发布时间】: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.stackoverflow.com/a/285557/3027266 - 日期/时间值从不存储为文本,使用正确的Date 对象

标签: database mongodb server find pymongo


【解决方案1】:

经过大量尝试,我找到了解决方案:

db.hpfeed.find({}, {"payload.client_ip":1})

【讨论】:

  • 没有人让您询问如何更改查询。这实际上是最常见的编写方式(javascript 方式),因为通常不支持另一种方式。您可以使用mongo --version 查看版本
【解决方案2】:

您可能在不同的 MongoDB 版本上进行测试。来自文档:

对于嵌入文档中的字段,您可以使用以下任一方式指定字段: * 点符号;例如“field.nestedfield”: 嵌套形式;例如{ field: { nestedfield: } }(从 MongoDB 4.4 开始)

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2019-09-02
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多