[英]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.