在MongoDB中查询不带鉴别器的文档

在MongoDB中查询不带鉴别器的文档,mongodb,nosql,Mongodb,Nosql,假设我使用以下结构和命令在MongoDB集合中创建一个文档: db.foo.insert( { "PatientCore" : { "Name" : "John Doe", "Age" : 30 }, "OnArrivalData" : { "Readings" : { "Temperature" : 100.1, "HBP" : 140, "LBP" : 88, "TimeS

假设我使用以下结构和命令在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() }
                ],
            }
        ]
    }
)
首先,请注意,我在文件中多次出现“阅读资料”

我想在整个文档中查询“读数”,这样我就不必通过对嵌入文档的引用来限定它。我怎样才能做到这一点?我们可以假设“读数”的结构是一致的


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

这目前是不可能的,因为这需要MongoDB理解字段名通配符。它必须允许像
{'*.reads.Temperature':99}
这样的事情,而在编写本文时它并没有这样做


这里有一个功能请求

在文档中“我想查询”读数的方式是什么,这样我就不必通过引用嵌入的文档来限定它了?如果要查询哪些值以及应该查询哪些值,通常添加一个示例更为实际,特别是对于非英语使用者。@RemonvanVliet:我认为他想说一些类似于
*.reads
的话,而不是对ArrivalData.Readings和
TreatmentStage.Readings
的话。您可能已经注意到,一个名为“Readings”的键在文档中出现了三次。我希望以这样一种方式查询文档,即返回“Readings”键的每个实例,而不管它在文档中的位置如何。我希望这一次我够清楚了。@mu啊,那样的话不可能;)@卡比尔:是的。我是那些不是以英语为母语的人之一,所以我很难理解你的问题。我会发布一个答案。