我在“用户”和“书”集合中有这个简单的模式
user = {
_userid: String,
favoriteBooks: String[],
bookmarkBooks: String[]
}
book = {
_bookid: String,
title: String
}
我有两个用于过滤器的变量。一个是_userid,另一个是书籍中的ID数组。
让我们说:
const _userid = "5d2ca5d2da6ecf39b04bb13a";
const _bookidArray = ["5d2f5ab31dd80550f0ac2e4e", "5d2f064f2ecded3414d07c33"]; //_bookid
现在,我正在尝试一种方法,以检查给定_userid文档中的收藏夹和/或书签簿中是否存在_bookidArray(其中一个ID)。
我希望有以下类似的东西:
db.collection('user').findOne({_userid}, {something?}));
,或者可能需要使用聚合解决方案。我不确定。
我期望像JSON这样的输出结果(如果需要,它可以有所不同):
"5d2f5ab31dd80550f0ac2e4e":{
"favorite": true,
"bookmark": false
},
"5d2f064f2ecded3414d07c33":{
"favorite": false,
"bookmark": false
}
如果键来自_bookidArray,并且_userid给定文档(favoriteBooks + bookmarkBooks)中存在_bookidArray的ID之一,则_userid文档给出值“ favorite” /“ bookmark”。
感谢您的帮助!