MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chọn Phần tử Mảng Khớp và Trả về Các Trường đã Chọn

Nếu bạn chỉ muốn chọn một số trường nhất định của một mảng để trả về thì bạn đang nói về việc "định hình lại" tài liệu. Đối với bất kỳ điều gì ngoài lựa chọn trường "cơ bản", điều này có nghĩa là sử dụng .aggregate() dưới dạng phương thức thay vì .find() .

Vì vậy, hai yêu cầu ở đây là $filter trên nội dung mảng để "khớp" và trả về, cũng như $map "các trường trả về" thực tế từ chính mảng:

User.aggregate([
  { "$match": { "children.name": "def" } },
  { "$project": {
     "name": 1,
     "children": {
       "$map": {
         "input": {
           "$filter": {
             "input": "$children",
             "as": "c",
             "cond": { "$eq": [ "$$c.name", "def" ] } 
           }
         },
         "as": "c",
         "in": {
           "age": "$$c.age",
           "height": "$$c.height"
         }
       }
     }
  }}
])

Đây $filter được sử dụng để giảm nội dung của mảng xuống chỉ những nội dung phù hợp với điều kiện. Là những người có cùng "name" thuộc tính giá trị "def" . Sau đó, giá trị này được chuyển làm "input" tham số thành $map .

$map toán tử hoạt động giống như các đối tác ngôn ngữ khác ở chỗ nó "định hình lại mảng" để trả về thứ gì đó theo những gì bạn chỉ định trong "in" tham số. Vì vậy, ở đây chúng tôi thực sự chỉ đặt tên rõ ràng cho các thuộc tính và sử dụng các phép gán biến ở đó cho phần tử mảng hiện tại đang được xử lý để chúng được trả về dưới dạng nội dung mảng "mới".

Kết quả tổng thể là một mảng, chứa:

  1. Chỉ các mục phù hợp với các điều kiện đã chỉ định.
  2. Chỉ các trường được chỉ định để trả về.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để bạn tính tổng các giá trị trong một đối tượng là một tài liệu con lồng nhau trong mongodb bằng cách sử dụng node.js?

  2. Cài đặt mô-đun mongodb morphia của khung chơi

  3. Khởi tạo dữ liệu trên mongo dày đặc

  4. Kết nối MongoDB từ Ứng dụng dựa trên thiết bị di động hoặc trình duyệt

  5. Phép chiếu mảng đa chiều MongoDB