쿼리 옵션이 몽둥이 populate
인데 왜 쿼리 옵션이 작동하지 않는지 알 수 없습니다.비동기 폭포로 쿼리 옵션 채우기
나는 사용자 스키마를 가지고 :
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserSchema = new Schema(
{
username: { type: String, required: true },
email: { type: String },
name: { type: String },
address: { type: String }
},
{ timestamps: true }
);
module.exports = mongoose.model('User', UserSchema);
및 공급 스키마
async.waterfall([
function(callback) {
User
.findOne({ 'username': username })
.exec((err, result) => {
if (result) {
callback(null, result);
} else {
callback(err);
}
});
},
function(userid, callback) {
// find user's feed
Feed
.find({})
// .populate('user', {_id: userid._id}) <== this one also doesn't work
.populate({
path: 'user',
match: { '_id': { $in: userid._id } }
})
.exec(callback);
}
], function(err, docs) {
if (err) {
return next(err);
}
console.log(docs);
});
:
나는 모든
feed
user
에 의해 ID를 찾으려면
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const FeedSchema = new Schema(
{
user: { type: Schema.ObjectId, ref: 'User' },
notes: { type: String, required: true },
trx_date: { type: Date },
status: { type: Boolean, Default: true }
},
{ timestamps: true }
);
FeedSchema.set('toObject', { getters: true });
module.exports = mongoose.model('Feed', FeedSchema);
, 나는 다음과 같은 코드 async waterfall
를 사용
위 코드를 사용하면 피드가 모두있는 것처럼 보입니다. 쿼리 옵션이 전혀 작동하지 않습니다, 내가 잘못 했나요?
도움을 주시면 감사하겠습니다.
정말 고마워요, 이제 작동합니다. 내가 말한대로 Promises를 사용하도록 코드를 변경했습니다. – metaphor