使用 MongoDB 查询数组的最后一个对象


若要查询数组的最后一个对象,请使用集合的 aggregate() 方法。我们使用文档创建集合,如下所示 −

> db.demo103.insertOne( { "Details" : [
   { "StudentId" : 101, "Details" : "MongoDB" },
   {"StudentId" : 102, "Details" : "MySQL" },
   { "StudentId" : 103, "Details" : "Java" } 
], "Details1" : [ { "StudentId" : 104, "Number" : 3 } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2ed2dd9fd5fd66da21446e")
}

借助 find() 方法显示集合中的所有文档,如下所示 −

> db.demo103.find();

得到如下输出 −

{ "_id" : ObjectId("5e2ed2dd9fd5fd66da21446e"), "Details" : [ { "StudentId" : 101, "Details" : "MongoDB" }, { "StudentId" : 102, "Details" : "MySQL" }, { "StudentId" : 103, "Details" : "Java" } ], "Details1" : [ { "StudentId" : 104, "Number" : 3 } ] }

以下是如何在数组中查询最后一个对象 −

> db.demo103.aggregate([ { $project: { Details1: 1, Details: {$arrayElemAt: ["$Details", -1]} } }, { $match: {"Details.StudentId": 103} } ])

得到如下输出 −

{ "_id" : ObjectId("5e2ed2dd9fd5fd66da21446e"), "Details1" : [ { "StudentId" : 104, "Number" : 3 } ], "Details" : { "StudentId" : 103, "Details" : "Java" } }

更新日期:30-Mar-2020

766 浏览量

开启你的 职业生涯

完成课程,获得认证

开始学习
广告