MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB rozwija wiele tablic

Od wersji 3.2 możesz to zrobić za pomocą $unwind na obu tablicach, $cmp indeksy i $match tylko równe indeksy.

To rozwiązanie wypełni to, co napisałeś, jeśli masz tylko przykładowy dokument. Jeśli masz więcej dokumentów, nie wiem, czego oczekujesz w wyniku, ale można to rozwiązać, grupując według _id dokumentu.

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. Wydajność MongoDB:uruchamianie agregacji MongoDB na serwerach pomocniczych

  2. Nieoczekiwany kod wyjścia mongo 100. Ponowne uruchamianie

  3. Kopiuj/klonuj bazę danych w MongoDB

  4. Monitorowanie instancji MongoDB za pomocą usługi monitorowania MongoDB (MMS)

  5. MongoDB Regex, indeks i wydajność