0

在我的mongoose數據庫中,我有兩個模型:UsersComments

在我node.js代碼,我有:

var Comment = require('./../models/commentsModel.js'); 
var User = require('./../models/usersModel.js'); 

現在我想建立一個查詢與$lookupComments和相應Users返回結果(目前Comments包含一個字段user_id)。這是我到目前爲止有:

function executeQuery(query, callback) { 
    query = Comment.find(query); 

    Comment.aggregate([{$lookup: 
    { from: "users", 
     localField: "user_id", 
     foreignField:"_id", 
     as: "user" 
    }}]); 

    query.exec(function(err, comments){ 
     if(err) { 
      callback(err); 
      return; 
     } 
    return callback(null, comments); 
    }); 
} 

,但我沒有看到UserComment附加到結果的任何數據。我錯過了什麼?

回答

0

您沒有執行聚合查詢。無論是在最後添加一個回調函數,或致電exec(function(err,res))

Comment.aggregate([{ 
    $lookup: { 
     from: "users", 
     localField: "user_id", 
     foreignField: "_id", 
     as: "user" 
    } 
}],function(err,res){ 
    console.log(res); 
}); 

或者

var aggregateQuery = Comment.aggregate([{ 
    $lookup: { 
     from: "users", 
     localField: "user_id", 
     foreignField: "_id", 
     as: "user" 
    } 
}]); 
aggregateQuery.exec(function(err,res){ 
    console.log(res); 
}) 
相關問題