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

MongoDB giải phóng nhiều mảng

Từ phiên bản 3.2, bạn có thể làm điều đó với $unwind trên cả hai mảng, $cmp các chỉ mục và $match chỉ các chỉ mục bằng nhau.

Giải pháp này sẽ điền những gì bạn đã viết trong trường hợp bạn chỉ có tài liệu ví dụ. Nếu bạn có nhiều tài liệu hơn, tôi không biết bạn mong đợi nhận được gì ở đầu ra, nhưng nó có thể giải quyết được bằng cách nhóm theo _id của tài liệu.

db.test.aggregate([
    {
        $unwind: {
            path: '$dates',
            includeArrayIndex: 'dates_index',
        }
    },
    {
        $unwind: {
            path: '$numbers',
            includeArrayIndex: 'numbers_index',
        }
    },
    {
        $project: {
            dates: 1,
            numbers: 1,
            compare: {
                $cmp: ['$dates_index', '$numbers_index']
            }
        }
    },
    {
        $match: {
            compare: 0
        }
    },
    {
        $project: {
            _id: 0,
            dates: 1,
            numbers: 1
        }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tạo chỉ mục văn bản trong MongoDB

  2. Xác thực MongoDB 3.2 không thành công

  3. Tổng quan về Lập chỉ mục cơ sở dữ liệu cho MongoDB

  4. Xóa tham chiếu một và một - nhiều - Mongoose

  5. Toán tử tổng hợp MongoDB $ sortByCount