MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB развива множество масиви

От версия 3.2 можете да го направите с $unwind и на двата масива, $cmp индексите и $match само равни индекси.

Това решение ще попълни това, което сте написали, в случай че имате само примерния документ. Ако имате повече документи, не знам какво очаквате да получите в изхода, но е разрешимо чрез групиране по _id на документа.

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. 3 начина за връщане на различни стойности в MongoDB

  2. Mongoose:CastError:Прехвърлянето към ObjectId не бе успешно за стойност [object Object] на път _id

  3. Попълнете модел мангуста с поле, което не е идентификатор

  4. MongoDB $orderBy

  5. Услугата MongoDB не работи във Fedora