[英]how to search for values in two different collections in mongodb using nodejs
[英]how can i agregate datas from different collections in mongodb using nodejs?
我正在使用 mongoDB 和 nodejs 我有 4 个 collections 集合 1 是教师,字段为teacher_id,teacher_name 集合 2 是主题,字段为 _id,subject_name 集合 3 是书,字段为 book_id,book_name
集合是具有字段的学生 -- _id、学生姓名、教师 ID、主题 ID、书籍 ID
如何同时从 1、2、3 collections 获取 id 并插入到集合中的相应 id
我已经尝试过一些总是要求匹配字段的...是否有任何 function 即使没有匹配字段也会从集合中返回数据?
有人可以帮忙吗
那么,在这种情况下,您需要从那些 collections 中获取所有文档。 这将是一个有点昂贵的聚合,但我在代码中添加:
首先,我在 null 上进行分组,以避免将查找值附加到教师集合中的每个文档。
db.teacher.aggregate([
{
$group:{
"_id":null,
"root":{
$push:"$$ROOT"
}
}
},
{
$lookup:
{
from:"subject",
pipeline: [],
as: "subjectLookup"
}
},
{
$lookup:
{
from:"book",
pipeline: [],
as: "bookLookup"
}
},
{
$lookup:
{
from:"student",
pipeline: [],
as: "studentLookup"
}
}
]).pretty()
这些查找将给出包含来自各个 collections 的所有文档的数组,您可以通过在查找阶段的管道中添加$match
阶段来限制文档。
希望这能解决你的问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.