Node.js 使用mongoose从mongoDB中的两个集合中筛选文档
我有两个收藏:“信息”和“组信息地图”_我存储在组消息映射中的消息集合的id列。如果我正在删除组消息映射条目中的一小部分,那么只有我试图获取的两个集合中剩余的公共条目,但得到的响应为空。以下是我的方法:Node.js 使用mongoose从mongoDB中的两个集合中筛选文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有两个收藏:“信息”和“组信息地图”_我存储在组消息映射中的消息集合的id列。如果我正在删除组消息映射条目中的一小部分,那么只有我试图获取的两个集合中剩余的公共条目,但得到的响应为空。以下是我的方法: getLimitedMessages(receiverId, senderId, page, size, callback) { var messages = []; GroupMessageMap.find({ groupId: receiverId,
getLimitedMessages(receiverId, senderId, page, size, callback) {
var messages = [];
GroupMessageMap.find({
groupId: receiverId,
userSId: senderId
})
.skip(parseInt(((size * page) - size)))
.limit(parseInt(size))
.sort({ $natural: -1 })
.exec(function(err, maps) {
if (err) {
console.log('err is maps ', err);
} else {
maps.map((map) => {
Message.find({
_id: map.messageId
}, function(err, message) {
if (err) {
console.log('messages err ', err);
} else {
messages.push(message);
}
});
});
}
});
console.log('filtered messages: ' + messages);
};
为什么不使用$lookup或populate 地图。地图((地图) 不会等待异步db调用,在得到db响应之前,您将得到空响应 请参考这些链接
是否映射等待异步db调用?不是,因此我得到的是空数组。我尝试使用async和wait,但也得到了此错误:“ReferenceError:regeneratorRuntime未定义”。我也安装了所有相关的依赖项和devDependencies。我尝试过填充,但不起作用。让我也尝试$lookup。