javascript - 聚合缺少数据的嵌套文档
问题描述
我有一个 mongoDB 集合,其中包含以下数据:
{
"_id" : ObjectId("..."),
"records" : [
ISODate("2020-04-19T00:49:18.945Z"),
{
"_id" : ObjectId(""),
"date" : ISODate("2020-05-07T04:49:55.643Z"),
"text" : "someText"
}
],
}
records
因版本升级不同,数值不同。
我想汇总records.text
所有文档,忽略丢失的数据。来自MongoDB 的代码:聚合和展平数组字段
db.collection.aggregate({$unwind : "records"},
{$project: {_id: 1, 'text': '$records.text'}})
抛出:
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: {_id: 1, 'text': '$records.text'}})
我希望这对你有用。
推荐阅读
- regex - 具有多个关键字的Google表格匹配类别到字符串
- php - laravel迁移创建操作时用方括号括起来的字段键和字段值
- javascript - 如何通过单击完整日历更新数据表?
- java - (Parse-SDK) 如何访问 List
来自另一个 ParseObject? - android - 如何获取android设备中所有已安装应用程序的apk列表
- flutter - 无法在 Flutter 中修改列表项/元素
- php - 如何在dominknow的php中将响应发送回api
- javascript - 如何在本机反应中使用 Jest 测试 lodash 的去抖动功能?
- html - 当我将鼠标悬停在它上面时,我无法弄清楚如何阻止我的导航栏突出显示我的活动链接
- keras - 输出层正则化实现