[英]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
可以嘗試這個查詢
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.