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

MongoDB tìm các đối tượng lồng nhau đáp ứng tiêu chí

Vì các mảng được lồng vào nhau nên bạn không thể sử dụng phép chiếu cơ bản như bạn có thể làm với find. Ngoài ra, để "lọc" nội dung mảng khỏi tài liệu, trước tiên bạn cần "giải nén" nội dung mảng. Đối với điều này, bạn sử dụng khung tổng hợp:

   $results = $db->genealogical_data->aggregate(array(
       array( '$match' => array(
           'people.search_columns.givenname' => 'Valentine'
       )),
       array( '$unwind' => '$people' ),
       array( '$match' => array(
           'people.search_columns.givenname' => 'Valentine'
       )),
       array( '$group' => array(
           '_id' => '$id',
           'name' => array( '$first' => '$name' ),
           'people' => array( '$push' => '$people' )
       ))
   ));

Điểm của $ match giai đoạn là giảm các tài liệu có thể phù hợp với tiêu chí của bạn. Lần thứ hai được thực hiện sau $ unwind , nơi các mục "mảng" thực tế trong tài liệu được "lọc" khỏi kết quả.

$ group cuối cùng đặt mảng ban đầu trở lại bình thường, trừ đi các mục không phù hợp với tiêu chí.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tổng số MongoDB đang chạy giống như tổng hợp các bản ghi trước đó cho đến khi xuất hiện giá trị

  2. mongo - không thể kết nối với máy chủ 127.0.0.1:27017

  3. Phần tử mảng cập nhật Mongo (trình điều khiển .NET 2.0)

  4. Trang đăng nhập đơn giản trong nodejs bằng express và passport với mongodb

  5. MapReduce với MongoDB thực sự rất chậm (30 giờ so với 20 phút trong MySQL cho cơ sở dữ liệu tương đương)