Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Lấy chỉ phần tử đầu tiên của trường mảng trong MongoDB

Sử dụng toán tử $slice với giá trị 1. Tạo collection với document:

> db.gettingFirstItemInArrayDemo.insertOne(
    {
      "UserId": 101,
      "UserName": "Carol",
      "UserOtherDetails": [
        {"UserFriendName": "Sam"},
        {"UserFriendName": "Mike"},
        {"UserFriendName": "David"},
        {"UserFriendName": "Bob"}
      ]
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5cdfca52bf3115999ed51205") }

Hiển thị document:

> db.gettingFirstItemInArrayDemo.find().pretty();

Kết quả:

{ "_id" : ObjectId("5cdfca52bf3115999ed51205"), "UserId" : 101, "UserName" : "Carol", "UserOtherDetails" : [ { "UserFriendName" : "Sam" }, { "UserFriendName" : "Mike" }, { "UserFriendName" : "David" }, { "UserFriendName" : "Bob" } ] }

Truy vấn chỉ lấy phần tử đầu tiên của mảng UserOtherDetails:

> db.gettingFirstItemInArrayDemo.find({"UserId": 101}, {UserOtherDetails: {$slice: 1}});

Kết quả:

{ "_id" : ObjectId("5cdfca52bf3115999ed51205"), "UserId" : 101, "UserName" : "Carol", "UserOtherDetails" : [ { "UserFriendName" : "Sam" } ] }