我想在聚合中使用$ max运算符,但如果我使用组,则需要ID。
我的文件有这种结构:
{
"_id" : ObjectId("5633d6c3425d449c2ed498dd"),
"stuff" : 123,
"names" : [
{
"type" : "primary",
"value" : "Foobar"
},
{
"type" : "alternate",
"value" : "Lorem Ipsum"
},
{
"type" : "alternate",
"value" : "Bar foo"
}
]
}
我尝试使用不带组的$ max
db.foobar.aggregate([
{ $unwind: "$names" },
{ $max: "$names.value" }
]);
但是得到"exception: Unrecognized pipeline stage name: '$max'"
还尝试过:
db.foobar.aggregate([
{ $unwind: "$names" },
{
$group:
{
_id: "",
maxName: { $max: "$names.value" }
}
}
]);
但是得到
{
"_id" : "",
"maxName" : "7つの紋章、7つの部族"
}
这很奇怪,因为我的拉丁字母字符串确实更长,例如:"米德尔顿通过英格兰和威尔士的新地理游戏"
我错过了什么吗? 你知道我怎么能用这个$ max吗?