2016-10-24 5 views
0

Ich habe ein Schema wie dies in MongoDB:

var Customers = new Schema({ 
    name: { type: String, trim: true, index: true, default: null, sparse: true }, 
    facebookId: { type: String, default: null, trim: true, index: true }, 
    friends: [friends] 
}); 

var friends = new Schema({ 
    customer: { type: Schema.ObjectId, ref: 'Customers', required: true }, 
    lastGame: { type: Schema.ObjectId, ref: 'games', required: true, default: null }, 
    lastGameTime: { type: Date, default: null } 
}); 

Jetzt in Freunden Array ich alle Referenz des Kunden, den Facebook-Freund des jeweiligen Kunden ist.

Nun, was ich tun möchte, ist ich habe einen Bildschirm, wo ich alle Kunden zeigen möchte, aber ich möchte nicht diejenigen Kunden, die bereits meine Facebook-Freunde sind, dh für ein Beispiel nehme ich an 10 Kunden insgesamt 1 bis 10, bin ich Kunde keine den Kunde 1,3,5,6 in Freunden Array so sollte mein Ergebnis auf dem Bildschirm des Benutzers seine 2,7,8,9 , 10

Ich werde wirklich dankbar sein, wenn jemand mir den Weg zu diesem Zeug mit der Abfrage von MongoDb sagen kann. Ich habe gesucht und gefunden $nin Verwendung, aber das funktioniert in einfachen Array. Ich verstehe nicht, wie ich diese Abfrage in einem eingebetteten Dokument implementieren kann, wie in meinem Fall.

Antwort

0

ich dieses Problem in Kombination verwendet werden gelöst durch $ nin mit einem mit einfacher Ansatz zuerst alle Freunde eines bestimmten Kunden in einem Array dann wähle ich $ nin Ich filterte alle Freunde aus der Abfrage und bekam mein Ergebnis.

0

Schauen Sie sich $ elemMatch an. Dies ermöglicht es Ihnen

ElemMatch MongoDB documentation

Sie können $ elemMatch auch ein bestimmtes Dokument in einem eingebetteten Dokument Array zu identifizieren, die mit $ nin

Verwandte Themen