首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于数组字段的Mongodb查找查询

基于数组字段的Mongodb查找查询
EN

Stack Overflow用户
提问于 2020-05-27 14:25:12
回答 3查看 385关注 0票数 1

集合:

代码语言:javascript
运行
复制
{
         "_id" : ObjectId("57506d74c469888f0d631be6"),
         "name" : "mycollection",
         "details" : [ 
             {
                 "date" : "25/03/2020",
                 "number" : "A",
                 "active" : false
              }
        },
{
        "_id" : ObjectId("57506d74c469888f0d631usi"),
        "name" : "newcollection",
        "details" : [ 

            {
                "date" : "30/03/2020",
                "number" : "C",
                "active" : false
            } 
        },
{
        "_id" : ObjectId("57506d74c4633388f0d631usi"),
        "name" : "mycollection",
        "details" : [ 

            {
                "date" : "31/03/2020",
                "number" : "C",
                "active" : false
            }
        },
    }

根据details字段中的活动状态获取值的查找查询。

我试过:

代码语言:javascript
运行
复制
db.collection.find(
    {"name": "mycollection", "details": {"active": False}})

预期结果:在每个集合中的details字段下,我需要活动为false的集合。这里应该显示记录id ObjectId("57506d74c469888f0d631be6")和ObjectId("57506d74c4633388f0d631usi")。

EN

Stack Overflow用户

发布于 2020-05-27 14:38:12

文档包含关于这种类型的查询的一节:https://docs.mongodb.com/manual/tutorial/query-array-of-documents/

您的查询不起作用,因为这种语法要求数组包含确切的对象,但是数组中的文档包含额外的字段,因此没有匹配。

本例的查询是db.collection.find({"name": "mycollection", "details.active": False})

注意:这将返回数组包含带有active==false的对象的所有文档,但是它不会过滤实际的数组来删除active=true的任何元素。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62045507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档