在没有鉴别器的情况下查询MongoDB中的文档

时间:2012-03-20 07:11:43

标签: mongodb nosql

假设我使用以下结构和命令在MongoDB集合中创建文档:

db.foo.insert(
    {
        "PatientCore" :
        { "Name" : "John Doe", "Age" : 30 },
        "OnArrivalData" :
        {
            "Readings" :
            { "Temperature" : 100.1, "HBP" : 140, "LBP" : 88, "TimeStamp" : new Date() },
            "Attending Doctor" : "Dr. Samuel John"
        },
        "TreatmentStage" :
        [
            {
                "StageName" : "Surgery",
                "Readings" :
                [
                    { "Temperature" : 100.1, "HBP" : 130, "LBP" : 70, "TimeStamp" : new Date() },
                    { "Temperature" : 99.1, "HBP" : 120, "LBP" : 70, "TimeStamp" : new Date() 
                ],
            },
            {
                "StageName" : "ICU",
                "Readings" :
                [
                    { "Temperature" : 99, "HBP" : 135, "LBP" : 72, "TimeStamp" : new Date() },
                    { "Temperature" : 98.6, "HBP" : 141, "LBP" : 80, "TimeStamp" : new Date() }
                ],
            }
        ]
    }
)

首先,请注意我在文档中多次出现“读物”。

我希望在文档中查询“读取”,以便我不必使用对嵌入文档的引用来限定它。我怎样才能做到这一点?我们可以假设“读物”的结构是一致的。

我知道我也可以努力重新构建文档,但在这里我没有这样的自由。

1 个答案:

答案 0 :(得分:2)

目前这是不可能的,因为它需要MongoDB来理解字段名称通配符。它必须允许{'*.Readings.Temperature': 99}之类的内容,而这些内容在编写时并不存在。

此功能请求在https://jira.mongodb.org/browse/SERVER-267