【问题标题】:How to query and get value from list in single document如何从单个文档中的列表中查询和获取值
【发布时间】:2020-02-11 00:34:08
【问题描述】:

我正在尝试在单个文档中查询 mongodb 列表。如下图,我想匹配代码,获取wheels值。如果 code = car 那么查询应该返回该列表元素的轮子和允许值。以下是单个文档的列表。

"vehicles" : [ 
        {
            "code" : "car",
        "wheels":4,
            "allowed": True
        }, 
        {
            "code" : "Tuk Tuk",
        "wheels":4
            "allowed":True
        }, 
        {
            "code" : "Bike",
        "wheels":4
            "allowed":False
        }]

【问题讨论】:

    标签: mongodb mongodb-query pymongo mongoengine


    【解决方案1】:

    你可以这样试试

    db.collectionName.find({"vehicles.code" : "car" }, {"vehicles.wheels" : 1 , "vehicles.allowed" : 1}).pretty() 这里 "vehicles.code" : "car" 是过滤器, "vehicles.wheels" : 1 将显示唯一的车轮值,不会显示任何其他字段

    【讨论】:

    • 这将返回车轮列表和文档的允许值,包括 Tuk Tuk 和 Bike
    • 这意味着它没有应用过滤器 "vehicles.code" : "car" ,请检查一次您的查询或发布查询
    • 给定的代码是来自单个文档的列表。您正在过滤集合中的文档。但我想过滤列表。
    • 你可以这样尝试` db.Vehiclestest.find({vehicles : {$elemMatch : {"code" :"car"}}} , {'vehicles.$':1})。漂亮()`
    • 使用您上次评论中的代码更新答案。
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2018-04-21
    • 2016-12-12
    • 2020-08-14
    • 2021-01-03
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多