MongoDB 驱动程序:4.2.6, Mongoose :^5.9.6
我想展开关键字属性:
[
{
"_id": null,
"totalNumberOfData": 4,
"data": [
{
"numberOfData": 2,
"sentiment": "Good",
"keyword": [
"A",
"B",
"C"
]
}
]
}
]
我尝试过这个,但没有成功。
{
$unwind: {
path: "$data.keyword",
preserveNullAndEmptyArrays: true,
},
},
如何展开关键字数组?
最佳答案
一般来说,$unwind
阶段的输入应该是一个数组,因为您正在执行 data.keyword
unwind,因此需要一个名为 data
的字段> 作为一个对象,其嵌套字段名为 keyword
作为数组,如:{data : keywords : []}
& 它无法以这种方式找到它,从而导致空数组作为聚合的输出。由于 data
也是一个数组,因此您需要先展开它,因此您的情况需要双重展开:
db.collection.aggregate([
{
$unwind: {
path: "$data",
preserveNullAndEmptyArrays: true
}
},
{
$unwind: {
path: "$data.keyword",
preserveNullAndEmptyArrays: true
}
}
])
测试: mongoplayground
关于Mongodb $unwind 数组中的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61649038/