1
嵌套查詢我有三個模式:用戶,帖子和評論與貓鼬
var User = new Schema({
name: String,
email: String,
password: String // obviously encrypted
});
var Post = new Schema({
title: String,
author: { type: Schema.ObjectId, ref: 'User' }
});
var Comment = new Schema({
text: String,
post: { type: Schema.ObjectId, ref: 'Post' },
author: { type: Schema.ObjectId, ref: 'User' }
});
我需要在對用戶有評論所有帖子。
我知道它應該是一個非常簡單和常見的用例,但現在我無法想象沒有多次調用並手動迭代結果的查詢方法。
我一直在想加入comments
場到Post
架構(我寧願避免),使類似的:
Post.find()
.populate({ path: 'comments', match: { author: user } })
.exec(function (err, posts) {
console.log(posts);
});
任何線索,而無需修改我原來的模式?
謝謝
看起來有前途的(沒有雙關語意),但它正是我指的是在我的崗位當我說我找到一種方法來避免多次調用(有兩個'find's)和迭代(map)。 – javorosas
@javorosas使用另一種方法更新了我的答案,這種方法不需要多次調用,但是可以操縱結果數組以僅返回帖子,更接近您正在尋找的內容。 – chridam