簡體   English   中英

如何使用nodejs從mongodb中的不同collections聚合數據?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM