我想从学生集合中按名称提取100条记录.现在我想让这个100条记录中标记大于x的学生.任何人都可以帮助解决这个问题.当我在查询中给出Max(标记)时,它在排序和跳过之前执行.
这是我试过的查询
var query = {};
query["marks"] = {$gt:35};
db.collection("student").find(query).skip(0).limit(100).sort("name")
Run Code Online (Sandbox Code Playgroud)
Joh*_*yHK 17
当您按照本例中的步骤描述查询时,将aggregate结果从一个操作的输出传递到下一个操作的输入的能力使其成为自然选择:
db.student.aggregate([
// First sort all the docs by name
{$sort: {name: 1}},
// Take the first 100 of those
{$limit: 100},
// Of those, take only ones where marks > 35
{$match: {marks: {$gt: 35}}}
])
Run Code Online (Sandbox Code Playgroud)