首页 > 解决方案 > 如何在 mongoDB 中查询该文档?

问题描述

{
    "_id": {
        "$oid": "5c6b67a937f76029554a96de"
    },
    "1995": [
        {
            "SYMBOL": "20THCENFIN",
            "SERIES": "EQ",
            "OPEN": "75",
            "HIGH": "75",
            "LOW": "75",
            "CLOSE": "75",
            "LAST": "75",
            "PREVCLOSE": "75",
            "TOTTRDQTY": "100",
            "TOTTRDVAL": "7500",
            "TIMESTAMP": "1-AUG-1995",
            "field12": ""
        },
        {
            "SYMBOL": "AARTIIND",
            "SERIES": "EQ",
            "OPEN": "66",
            "HIGH": "66",
            "LOW": "63.05",
            "CLOSE": "63.05",
            "LAST": "63.05",
            "PREVCLOSE": "65.05",
            "TOTTRDQTY": "700",
            "TOTTRDVAL": "45805",
            "TIMESTAMP": "1-AUG-1995",
            "field12": ""
        },
        {
            "SYMBOL": "ABANLLOYD",
            "SERIES": "EQ",
            "OPEN": "150",
            "HIGH": "151",
            "LOW": "149",
            "CLOSE": "150.5",
            "LAST": "150",
            "PREVCLOSE": "150",
            "TOTTRDQTY": "800",
            "TOTTRDVAL": "119800",
            "TIMESTAMP": "1-AUG-1995",
            "field12": ""
        }
    ]
}

现在我想在 mongodb 中查询 Symbol 属性?我怎样才能在 mongo shell 中查询这个文档?另一件事是,如果我找到数据库中实际存在的正确值,那么它将返回 true 还是什么?

标签: mongodb

解决方案


根据您提供的示例,如果您想查找包含特定SYMBOL值的文档(例如:AARTIIND,使用 Mongo Shell,您将查询如下:

db.collection.find({ "1995": { $elemMatch: { SYMBOL: "AARTIIND" } } })

这将使用$elemMatch运算符查询嵌入文档的数组

这将返回整个匹配文档。请注意,这仅在集合中每个文档的架构都包含一个1995字段时才有效。

如果您只想返回1995数组中的特定匹配文档,则可以考虑编写一个聚合管道


推荐阅读