使用聚合管道在MongoDB中获取记录
MongoDB聚合管道具有阶段。每个阶段在文档通过管道时都会对其进行转换。
首先让我们创建一个包含文档的集合-
> db.demo218.insertOne({"Name":"Chris","Branch":"CS",Marks:[65,78,36,90]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3e5f4903d395bdc2134712")
}
> db.demo218.insertOne({"Name":"David","Branch":"ME",Marks:[56,45,42,51]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3e5f6203d395bdc2134713")
}
> db.demo218.insertOne({"Name":"Chris","Branch":"CS",Marks:[78,65,89]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3e5f6c03d395bdc2134714")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo218.find();
这将产生以下输出-
{ "_id" : ObjectId("5e3e5f4903d395bdc2134712"), "Name" : "Chris", "Branch" : "CS", "Marks" : [ 65, 78, 36, 90 ] }
{ "_id" : ObjectId("5e3e5f6203d395bdc2134713"), "Name" : "David", "Branch" : "ME", "Marks" : [ 56, 45, 42, 51 ] }
{ "_id" : ObjectId("5e3e5f6c03d395bdc2134714"), "Name" : "Chris", "Branch" : "CS", "Marks" : [ 78, 65, 89 ] }以下是对聚合管道的查询-
> db.demo218.aggregate([
... { "$unwind": "$Marks" },
... { "$match":
... {
... "Branch": "CS",
... "Marks": { "$gt": 88 }
... }
... },
... { "$group":
... {
... "_id": "$_id",
... "Branch": { "$first": "$Branch" },
... "Marks": { "$first": "$Marks" }
... }
... }
...])这将产生以下输出-
{ "_id" : ObjectId("5e3e5f6c03d395bdc2134714"), "Branch" : "CS", "Marks" : 89 }
{ "_id" : ObjectId("5e3e5f4903d395bdc2134712"), "Branch" : "CS", "Marks" : 90 }热门推荐
10 交个朋友蛋糕祝福语简短
11 疫情对妈妈祝福语简短
12 生日祝福语简短致表哥
13 八一祝福语简短文字
14 优美的春节祝福语简短
15 艺校元旦祝福语大全简短
16 经典座右铭简短祝福语英文
17 小升初送给儿子祝福语简短
18 虎年春节拜年祝福语简短