【问题标题】:[MongoDB]How to find an object from array?[MongoDB]如何从数组中查找对象?
【发布时间】:2020-08-30 11:21:48
【问题描述】:

我正在尝试从对象数组中查询单个对象。

数组看起来像这样。

db.getCollection('user').getIndexes();

[
   {
        "v" : 1,
        "key" : {
            "_id" : 1
        }
    },
    {
        "v" : 1,
        "key" : {
            "name" : 1
        }
    },
    {
        "v" : 1,
        "key" : {
            "admin" : 1
        }
    }
]

不知道如何在“key”对象中找到具有“_id”属性名称的元素。

db.getCollection('user').getIndexes().[some sorting query];

{
     "v" : 1,
     "key" : {
         "_id" : 1
     }
}

有人有想法吗?谢谢。

【问题讨论】:

  • 您正在尝试查询getIndexes() 的结果,我相信这是不可能的!原因 .getIndexes() 在此之后不接受任何查询。所以这个.find() 适用于db.collection(),但适用于getIndexes().find()。您可以将此查询结果带入代码并做任何您想做的事情..
  • @whoami 哦,我不知道!谢谢你和我分享:)

标签: arrays mongodb


【解决方案1】:

mongo shell 中的 getIndexes 助手接受过滤器作为参数,例如:

db.getCollection("user").getIndexes({"key._id":{$exists:true}})

从驱动程序中,您可以类似地运行 listIndexes 命令:

database.runCommand({listIndexes:"user", "key._id":{$exists:true}})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多