【发布时间】:2021-07-07 13:32:31
【问题描述】:
我们现在使用 mongo-db 来存储来自测试的数据。我正在使用 Mongo-Shell 文档的结构如下:
{
static1:"abc",
static2:"xyz",
static3:"asd", [...],
nested:[
{
data1: "d1",
data2: "d2",
},
{
data1: "dx",
data4: "d4",
data5: "d5",
data6: "d6",
},
{
data1: "ds",
data8:"data8"
}, [...]
]
}
因此静态数据始终处于相同的结构中,但对于每次测量,对象可能看起来不同。它可以是具有上限、下限和实际值的电压。或者只是比较目标值和实际值。高度动态。 相同的data1-name代表相同的属性。
现在例如我只想显示嵌套文档的一些静态数据和一个(或多个)属性。
我正在使用这个查询:
find({}, {_id:0, data1:1, "nested.data8":1}).pretty()
不出所料,只显示了静态数据1,但动态测量在shell输出中有很多空对象
示例输出:
{
"static1" : "123",
"nested" : [
{ },
{ },
{ }, [...] ,
{ "data8" : "OK" }
] }
期望的输出是:
{
"static1" : "123",
"nested" : [
{ "data8" : "d8" }
]
}
我也在 mongo shell 上试过这个查询:
aggregate( { $addFields: {"static":"$static1", "data8":"$nested.data8"} }, { $project:{"static1":1, "nested.data8":1} } ).pretty()
但结果是一样的。 我希望有办法摆脱输出中的空文档。
谢谢
【问题讨论】:
标签: mongodb mongodb-query mongo-shell mongo-projection