簡體   English   中英

貓鼬從加入兩個模型中獲取數據

[英]Mongoose get data from joining two model

我有兩個模型CRM模型和CRM STATUS模型。 _id和crm_id在兩個模型中相同。 任何id都可以有很多狀態文檔。 我想從nodejs的CRM STATUS模型中查找每個ID的最新更新狀態。

客戶關系管理模型

        "_id" : ObjectId("5a16a6481dac972b9cf22978"),   /// join this 
        "updatedAt" : ISODate("2017-11-23T10:43:20.450Z"),
        "createdAt" : ISODate("2017-11-23T10:43:20.450Z"),
        "name" : "istiaque ahmad",
        "shop_name" : "soul dance",
        "address" : "dfsdfsd",
        "phone" : "01764199657",
        "email" : "nahid@gmail.com",
        "website" : "facebook.com",
        "comment" : "defdfsdfsdf",
        "interest" : "ddsfsdfsdf",
        "reference" : "dfsdfsdf",
        "__v" : 0

CRM狀態

    "_id" : ObjectId("5a1a89041fe4313394da0db6"),
    "updatedAt" : ISODate("2017-11-26T09:27:32.725Z"), ///last updated
    "createdAt" : ISODate("2017-11-26T09:27:32.725Z"),
    "crm_id" : "5a1a48c5796ee01e90b618b6",  // join this 
    "name" : "nahid hasan",
    "shop_name" : "gift gallary",
    "status" : "dsadsdsada", /// find this 
    "__v" : 0

如果您在Shemas中使用“引用”,則可以“加入”某些模型。

看看貓鼬填充文檔

希望能幫助到你。

可以嘗試這個查詢

db.crm.aggregate([
  {
    $lookup: {
      from: "crmstatus",
      localField: "_id",
      foreignField: "crm_id",
      as: "status"
    }
  },
  {$unwind: {path: "$status", "preserveNullAndEmptyArrays": true}},
  {$sort: {"status.updatedAt": -1}},
  {
    $group: {
      _id: "$_id",
      name: {$first: "$name"},
      //... add fields as you need 
      status: {$first: "$status"}
    }
  }
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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