Tôi đang cố trả lại danh sách các phiếu thưởng được liên kết với một userid cụ thể và điền vào các tham chiếu _merchant.Mongoose lồng nhau truy vấn điền
Truy vấn này điền chính xác các tham chiếu _merchant. Nếu tôi có thể thêm:
nơi coupon.users.contains (myuserid) để truy vấn của tôi rằng sẽ có được những gì tôi cần
db.couponModel.find().populate('_merchant').exec(function(err, coupons) {
res.send(coupons);
});
Hoặc truy vấn này thấy các phiếu giảm giá đúng mà tôi cần. Nếu tôi có thể thêm:
điền (_merchant) vào truy vấn của tôi cũng sẽ nhận được những gì tôi cần.
db.userModel.findById(req.params.id).populate('coupons').exec(function(err, user) {
res.send(user.coupons)
});
Schemas
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' }],
});
Tôi cần một số lai của hai truy vấn này để có được những gì tôi muốn.
Tôi đoán việc điền vào tài liệu nhúng của tài liệu được nhúng chưa được hỗ trợ. Xem https://github.com/LearnBoost/mongoose/issues/601#issuecomment-6520568 – idursun
Tôi nghĩ rằng nó được hỗ trợ trong bản phát hành từ một vài ngày trước nhưng chưa có tài liệu nào cho nó. Bất kỳ hacks để có được xung quanh nó? Sử dụng $ trong có lẽ? – user1071182
https://github.com/LearnBoost/mongoose/pull/1292 – user1071182