Javascript 聚合缺少数据的嵌套文档
我有一个mongoDB集合,其中包含以下数据:Javascript 聚合缺少数据的嵌套文档,javascript,mongodb,aggregation-framework,Javascript,Mongodb,Aggregation Framework,我有一个mongoDB集合,其中包含以下数据: { "_id" : ObjectId("..."), "records" : [ ISODate("2020-04-19T00:49:18.945Z"), { "_id" : ObjectId(""), "date" : ISODate("2020-05-07T04:49:55.643Z"), "text" : "someText
{
"_id" : ObjectId("..."),
"records" : [
ISODate("2020-04-19T00:49:18.945Z"),
{
"_id" : ObjectId(""),
"date" : ISODate("2020-05-07T04:49:55.643Z"),
"text" : "someText"
}
],
}
由于版本升级,记录中的值不同
我想在所有文档中聚合记录。文本,忽略缺少的数据。源代码
抛出:
path option to $unwind stage should be prefixed with a '$': records
以及修复中的错误以容纳空字段:
db.collection.aggregate({$unwind : "records", includeEmpty: false},
{$project: {_id: 1, 'text': '$records.text'}})
投掷
A pipeline stage specification object must contain exactly one field.
如何从可能为空值的嵌套数组中聚合值?您可以使用以下方法筛选出空值:
在第一次查询中,缺少“$”,因为记录是一个字段值,所以应该在它前面加“$”前缀。最终查询将是:
db.collection.aggregate({$unwind:$records},
{$project:{{{u id:1,'text':'$records.text'}})
我希望这对你有用
A pipeline stage specification object must contain exactly one field.
db.collection.aggregate([
{ $unwind: "$records" },
{ $match: { "records.text": { $exists: true } } },
{ $project: { _id: 1, text: "$records.text" }}
{$group: {_id: "$text", count: {$sum: 1}}},
{$sort: {count: -1}}
])