0
這是我的模式。每個用戶都有很多帖子,每個帖子都有用戶收藏的列表。貓鼬/ mongo多對多計算字段
var User = mongoose.model('User', {
name: String,
posts: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Post' }]
});
var Post = mongoose.model('Post', {
name: String,
favorited: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }]
});
我需要選擇帶有布爾標誌的所有用戶帖子是否被收藏。
我已經開始與:
User.findById('56e14680476f47200f1f598e')
.populate('posts')
.then(u => {
console.log(u);
})
.catch(console.error.bind(console));
輸出:
[ { favorited: [Object],
__v: 0,
name: 'post 1',
_id: 56e14680476f47200f1f5991 },
{ favorited: [],
__v: 0,
name: 'post 2',
_id: 56e14680476f47200f1f5992 },
{ favorited: [],
__v: 0,
name: 'post 3',
_id: 56e14680476f47200f1f5993 } ],
__v: 0,
name: 'user 1',
_id: 56e14680476f47200f1f598e }
聚集,地圖,減少,或可能重新設計架構?也許有複雜結構的好例子?在哪裏挖?
你做了第二次填充 - Post.populate(user.posts,..這不會幫助結果是[] – Dizzy
@Dizzy,根據你的文檔,'favorited:[]'爲空,所以沒有用戶以填充... – zangw
不是,請注意收藏:[對象],在'post 1' – Dizzy