Mongo 查询 - 查找文档中的最小值
Mongo query - finding minimum value within a document
我想在 mongoDB 文档中找到最小值:
示例文档
db.marks.insert({"name" : "John", "subject1" : 100, "subject2" : 98, "subject3" : 99, "subject4" : 97});
我想在每个文档中找到 subject1,subject2,subject3,subject4
的最小值。试图为此使用聚合框架,但它似乎可以跨文档工作。有没有办法在文档中找到价值?
您可以汇总如下:
$group
按名称将主题字段转换为数组。
$project
一个名为 score
的字段作为每个人所有分数的 $setUnion
。
$unwind
score
数组。
$group
再次按姓名查找 $min
每个人的分数。
代码:
db.marks.aggregate([
{$group:{"_id":"$name",
"subject1":{$push:"$subject1"},
"subject2":{$push:"$subject2"},
"subject3":{$push:"$subject3"},
"subject4":{$push:"$subject4"}}},
{$project:{"score":{$setUnion:["$subject1",
"$subject2",
"$subject3",
"$subject4"]}}},
{$unwind:"$score"},
{$group:{"_id":"$_id","minScore":{$min:"$score"}}}
])
我想在 mongoDB 文档中找到最小值:
示例文档
db.marks.insert({"name" : "John", "subject1" : 100, "subject2" : 98, "subject3" : 99, "subject4" : 97});
我想在每个文档中找到 subject1,subject2,subject3,subject4
的最小值。试图为此使用聚合框架,但它似乎可以跨文档工作。有没有办法在文档中找到价值?
您可以汇总如下:
$group
按名称将主题字段转换为数组。$project
一个名为score
的字段作为每个人所有分数的$setUnion
。$unwind
score
数组。$group
再次按姓名查找$min
每个人的分数。
代码:
db.marks.aggregate([
{$group:{"_id":"$name",
"subject1":{$push:"$subject1"},
"subject2":{$push:"$subject2"},
"subject3":{$push:"$subject3"},
"subject4":{$push:"$subject4"}}},
{$project:{"score":{$setUnion:["$subject1",
"$subject2",
"$subject3",
"$subject4"]}}},
{$unwind:"$score"},
{$group:{"_id":"$_id","minScore":{$min:"$score"}}}
])