MongoDB - Vergleiche mehrere Werte im Array

9

Ich möchte mehrere Dokumente finden, die drei oder mehr übereinstimmende Werte in einem Array haben. Sagen wir die folgenden Dokumente:

%Vor%

Und wir wollen Dokumente finden, die mindestens drei der Werte (in Autos) im folgenden Array haben:

%Vor%

Die Ergebnisse wären dann:

%Vor%

Weiß jemand, wie man das erreicht?

    
Dennis J 08.03.2013, 21:14
quelle

2 Antworten

7

Das ist eine gute Frage, und ich denke nicht, dass es einen einfachen Weg gibt, dies mit den üblichen Operatoren zu tun, die MongoDB Ihnen gibt. Allerdings kann ich mir folgende Methoden vorstellen:

1. Neues Feld

Berechnen Sie dies im App-Code und führen Sie das Ergebnis in einem neuen Feld des Dokuments fort.

2. Brute-Force

%Vor%

3. Verwende $where

%Vor%     
Zaid Masud 09.03.2013, 01:01
quelle
12

Sie können eine $in -Abfrage ausgeben lassen und anschließend den Datensatz mit 3 oder mehr Einträgen im gewünschten Array filtern. (Hier ist einige Samle Python-Code)

%Vor%     
Sushant Gupta 09.03.2013 09:50
quelle

Tags und Links