在MongoDB中查询不带鉴别器的文档
假设我使用以下结构和命令在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
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啊,那样的话不可能;)@卡比尔:是的。我是那些不是以英语为母语的人之一,所以我很难理解你的问题。我会发布一个答案。