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

Truy xuất giá trị mảng từ truy vấn find trong MongoDB

Để truy xuất giá trị trong mảng, sử dụng ký pháp dấu chấm . (dot notation). Tạo collection:

> db.retrievingArrayDemo.insertOne(
  {
    "UserDetails": [
      { "UserName": "John", "UserAge": 23 }
    ],
    "UserCountryName": "AUS",
    "UserLoginDate": new ISODate(),
    "UserMessage": "Hello"
  }
);
{ "acknowledged": true, "insertedId": ObjectId("5ce9718478f00858fb12e920") }
> db.retrievingArrayDemo.insertOne(
  {
    "UserDetails": [
      { "UserName": "Sam", "UserAge": 24 }
    ],
    "UserCountryName": "UK",
    "UserLoginDate": new ISODate(),
    "UserMessage": "Bye"
  }
);
{ "acknowledged": true, "insertedId": ObjectId("5ce9718478f00858fb12e921") }

Hiển thị tất cả document:

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

Kết quả:

{
  "_id": ObjectId("5ce9718478f00858fb12e920"),
  "UserDetails": [ { "UserName": "John", "UserAge": 23 } ],
  "UserCountryName": "AUS",
  "UserLoginDate": ISODate("2019-05-25T16:47:00.211Z"),
  "UserMessage": "Hello"
}
{
  "_id": ObjectId("5ce9718478f00858fb12e921"),
  "UserDetails": [ { "UserName": "Sam", "UserAge": 24 } ],
  "UserCountryName": "UK",
  "UserLoginDate": ISODate("2019-05-25T16:47:00.670Z"),
  "UserMessage": "Bye"
}

Truy vấn lấy giá trị mảng (tìm UserCountryName="UK" VÀ UserDetails.UserName="Sam"):

> db.retrievingArrayDemo.find({
  "UserCountryName": "UK",
  "UserDetails.UserName": "Sam"
}).pretty();

Kết quả:

{
  "_id": ObjectId("5ce9718478f00858fb12e921"),
  "UserDetails": [ { "UserName": "Sam", "UserAge": 24 } ],
  "UserCountryName": "UK",
  "UserLoginDate": ISODate("2019-05-25T16:47:00.670Z"),
  "UserMessage": "Bye"
}