ich ein Mungo-Schema wie folgt aussehen:Mongoose mit Paßgenauigkeitsbedingung für verschachtelte Dokument füllen
var Address = {
doorNo:String,
city:String,
state:String,
country:String,
district:String,
zipCode:String,
area:String,
locality:String
};
var StoreSchema = {
name:String,
address:Address,
category:[String],
products:[{ type:Schema.ObjectId, ref:"Product" }],
};
var ProductSchema = {
name:String,
description:String,
category:String,
subCategory:String,
store: { type:Schema.ObjectId, ref:"Store", childPath:"products" }
};
Ich brauche Produkte zu filtern, basierend auf Produkt-Kategorie und adress Stadt. Ruft nur die Produkte ab, die zu einem bestimmten Standort (Stadt im Adressschema) und einer bestimmten Kategorie gehören.
habe ich versucht, den folgenden Code:
Product
.find({'category':'accessories'})
.populate({
path: 'store',
match: { 'address.city': req.params.location},
select:'_id'
})
Dies alles liefert die Produkte, bei denen Kategorie Streichhölzer sondern überall dort, wo der Standort Filter nicht-zufrieden ist es ein Geschäft mit null und kehrt Speicher zurück, wo Standortfilter erfüllt ist.
ein leeres Array zurück ...... denn während tun „finden()“, es noch nicht besiedelt ist ... so es tut ein Geschäft haben abfragen auf die Adresse –
Aber noch sollte es übereinstimmendes Element zurückgeben. Lass mich nochmal nachsehen. –