ATT*_*ATT 6 mongodb aggregation-framework mongodb-compass
我有这种结构的文档:
{
"_id":{
"$oid":"..."
},
"Index":0,
"KeyIndex":"...",
"SerialNumber":"...",
"Tests":[
{
"TestName":"...",
"Status":"...",
"Steps":[
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
},
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
}
],
"Logs":[
{
"Type":"Info",
"Message":"..."
},
{
"Type":"Warning",
"Message":"..."
}
]
},
{
"TestName":"...",
"Status":"...",
"Steps":[
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
}
],
"Logs":[
{
"Type":"Info",
"Message":"..."
},
{
"Type":"Info",
"Message":"..."
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,Tests
属性是一个数组,其中每个对象都有自己的属性,其中两个是它们自身的数组。我想要一个从测试数组中的所有对象中删除日志属性的阶段。
结果应该是这样的:
{
"_id":{
"$oid":"..."
},
"Index":0,
"KeyIndex":"...",
"SerialNumber":"...",
"Tests":[
{
"TestName":"...",
"Status":"...",
"Steps":[
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
},
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
}
]
},
{
"TestName":"...",
"Status":"...",
"Steps":[
{
"LowLimit":"X",
"HighLimit":"Y",
"Result":"Z"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用指南针来构建聚合,我选择 $unset 阶段并尝试:
/**
* fields: The field name(s).
*/
{
"$Tests.Logs"
}
Run Code Online (Sandbox Code Playgroud)
和:
/**
* fields: The field name(s).
*/
{
["$Tests.Logs"]
}
Run Code Online (Sandbox Code Playgroud)
其中说:Stage must be a properly formatted document.
和:
/**
* fields: The field name(s).
*/
{
"$Tests.Logs":1
}
Run Code Online (Sandbox Code Playgroud)
其中说:$unset specification must be a string or an array .
归档时间: |
|
查看次数: |
3916 次 |
最近记录: |