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

khung tổng hợp mongodb - Tìm nạp trường của tài liệu đầu tiên của mảng lồng nhau

Cách dễ nhất để đạt được kết quả của bạn là sử dụng truy vấn tìm kiếm thông thường và $slice nhà điều hành:

db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )

Khung tổng hợp (như ở MongoDB 2.4.1) không hỗ trợ $slice hoặc chỉ mục mảng (yêu cầu tính năng bỏ phiếu / xem: SERVER-6074 SERVER-4589 ).

Bạn có thể thực hiện việc này trong khung tổng hợp bằng cách sử dụng $unwind , $group$first toán tử, ví dụ:

db.collection.aggregate([
    { $match: {
         _id : "User1"
    }},
    { $unwind: "$likes.sublikes" },
    { $group: {
        _id: "$_id",
        like: { $first: "$likes.sublikes" }
    }},
    { $project: {
        _id: 0,
        "UserID": "$_id",
        "WebsiteName": "$like.WebsiteName"
    }}
])

$slice bình thường nên là tùy chọn hiệu quả nhất.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao lại là alert de [fine] d, và sau đó hai dòng lại không phải (Meteor)?

  2. Spring-Data mongodb truy vấn nhiều lớp được lưu trữ trong cùng một bộ sưu tập

  3. Chúng ta có thể sử dụng kho dữ liệu mùa xuân để cập nhật các tài liệu nhúng trong mongodb không

  4. Nodejs - websocket-node module:Làm thế nào để làm cho nhiều máy chủ socket-hoạt động?

  5. cách truy xuất các đối tượng một phần từ mảng đối tượng trong một trường trong mongodb