文件:
{
"_id" : ObjectId("560dcd15491a065d6ab1085c"),
"title" : "example title",
"views" : 1,
"messages" : [
{
"authorId" : ObjectId("560c24b853b558856ef193a3"),
"authorName" : "Karl Morrison",
"created" : ISODate("2015-10-02T00:17:25.119Z"),
"message" : "example message"
}
]
}
项目:
$project: {
_id: 1,
title: 1,
views: 1,
updated: '$messages[$messages.length-1].created' // <--- ReferenceError: $messages is not defined
}
我正在尝试从文档内部的数组中获取最后一个元素创建的值。我已经阅读了文档,但是这个特定任务似乎不太好实现。
我了解到这与点表示法有关。然而,它没有说明如何获取最后一个元素。
$push
回内容到数组中。目前没有其他方法可以实现这一点。下一个版本的 MongoDB 将包括一个$slice
运算符,可用于聚合框架。你只能问你所问的问题,在一个问题中不能问其他问题。 - Blakes SevenMongoError: exception: invalid operator '$arrayElemAt'
。 - basickarl$unwind
并需要将文档$group
回来是很大的开销。如果您有更广泛的细节,请提出其他问题。 - Blakes Seven