【发布时间】:2017-07-10 07:55:39
【问题描述】:
您好,我有这样的 mongodb 查询。
.aggregate(
[
{ $match : { comment_box : "somdata" } },
{ $project : {
comment : 1,
created_at: 1,
current_date: "$replies.created_at",
},
dateDifference: { $subtract: [ new Date(), "$created_at"] }
}},
]
)
想象一下,我想从当前日期字段中的回复数组中获取 created_at 值。但是这个查询返回
current_date: [
"2016-03-08T13:48:27.882Z",
"2016-03-08T14:26:22.194Z"
]
而不是该数组中每个元素的当前 created_at 值
我尝试了很多方法,但都出错了
current_date: "$replies.0.created_at",
current_date: "$replies.$.created_at",
current_date: "$$replies.created_at",
等等
请帮我检索这样的数据
current_date:"2016-03-08T13:48:27.882Z",
【问题讨论】:
-
如何从日期数组中确定当前日期,它始终是数组中的第一个元素还是您需要对数组进行降序排序然后获取第一个元素?
-
你能展示示例文件吗?
-
codeshare.io/CrEXp 这是结果
-
codeshare.io/bbKVy 这是我的猫鼬模式
-
更新您的帖子,而不是粘贴外部网址。
标签: node.js mongodb mongoose aggregation-framework