0

私のmongooseデータベースには、UsersCommentsという2つのモデルがあります。私は私のnode.jsコードで

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

は今、私はCommentsUsers対応(現在Commentsフィールドuser_idが含まれている)からの結果を返すために$lookupでクエリを作成します。

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); 
    }); 
} 

が、私はCommentからの結果に添付Userから任意のデータが表示されない:これは私がこれまで持っているものです。私は何が欠けていますか?

答えて

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); 
}) 
関連する問題