我已经挣扎了一段时间,我似乎无法在这里找到答案。我想通过删除已指定列表中存在的子模式(使用 $nin:) 来过滤子文档中的子模式数组。我的问题是我要检查的列表在子文档的父级上,看看我想要做什么:
User.find({_id : socketUser.User})
.populate("room")
.elemMatch("room.things", {"Id" : {$nin : "User.likedThings" }})
.exec(function(err,users){
console.log(err);
});
所以我的用户有一个名为 room in 的属性,而我有一个东西列表。用户还拥有一组“likedThings”的唯一 ID(不是 ObjectIds,字符串)。
我想要做的是获取房间的“事物”,其中 id 尚未在“likedThings”的用户列表中。
我的问题是当我在房间里“沮丧”时,我无法访问 User.likedThings。(没有 ../../ 类似的命令)。
我如何实现这一目标?