배열의 마지막 개체에 대해 쿼리하려면 집계()를 사용합니다. 문서로 컬렉션을 만들자 −
> 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" } }