Ich versuche, eine Liste von Gutscheinen, die mit einer bestimmten Benutzer-ID verknüpft sind, zurückzugeben und die _merchant-Referenzen aufzufüllen.Mongoose verschachtelte Population Abfrage
Diese Abfrage füllt die _merchant-Referenzen korrekt aus. Wenn ich könnte hinzufügen:
wo coupon.users.contains (myuserid) auf meine Anfrage, die erhalten würde, was ich brauche
db.couponModel.find().populate('_merchant').exec(function(err, coupons) {
res.send(coupons);
});
Oder diese Abfrage findet die richtigen Coupons, die ich brauche. Wenn ich hinzufügen könnte:
befüllen (_merchant) zu meiner Abfrage, die auch bekommen würde, was ich brauche.
db.userModel.findById(req.params.id).populate('coupons').exec(function(err, user) {
res.send(user.coupons)
});
Schemen
var userSchema = new Schema({
email: { type: String, required: true , unique: true },
coupons: [{ type: Schema.ObjectId, ref: 'Coupon' }]
});
var couponSchema = new Schema({
_merchant: { type: Schema.ObjectId, ref: 'Merchant', required: true },
couponid: { type: Number, required: true, unique: true },
users: [{ type: Schema.ObjectId, ref: 'User' }]
});
var merchantSchema = new Schema({
name: { type: String, required: true , unique: true }
coupons: [{ type: ObjectId, ref: 'Coupon' }],
});
Ich brauche einige Hybrid dieser beiden Abfragen zu bekommen, was ich will.
Ich denke, das Auffüllen von eingebetteten Dokumenten von eingebetteten Dokumenten wird noch nicht unterstützt. Siehe https://github.com/LearnBoost/mongoose/issues/601#issuecomment-6520568 – idursun
Ich denke, dass es in der Veröffentlichung vor ein paar Tagen unterstützt wird, aber es gibt noch keine Dokumente dafür. Irgendwelche Hacks um es zu umgehen? $ Vielleicht verwenden? – user1071182
https://github.com/LearnBoost/mongoose/pull/1292 – user1071182