sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB slapper af flere arrays

Fra version 3.2 kan du gøre det med $unwind på begge arrays, $cmp indekserne og $match kun de lige indekser.

Denne løsning vil udfylde det, du skrev, hvis du kun har eksempeldokumentet. Hvis du har flere dokumenter, ved jeg ikke, hvad du forventer at få i outputtet, men det kan løses ved at gruppere efter dokumentets _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. 6 afgørende Redis-overvågningsmålinger, du skal se

  2. Når jeg starter blomst, får jeg følgende:dbm.error:db-typen er dbm.gnu, men modulet er ikke tilgængeligt

  3. Redis Cross Slot fejl

  4. Hvordan konfigureres AppArmor til MongoDB Replica Sets?