コレクションがあります
city: {"_id", "name"}
company: {"_id", "name", "cityID"}
comments: {"_id", "text", "companyID"}
特定の都市の企業に関する最後の10件のコメントを選択する必要があります。
次に、市内のすべての企業の最初に_idを選択し、次に_idで受け取った10個のコメントを選択します。コードは次のとおりです。
$ db-> execute ('function () {
var result = {};
var company = [];
result.company = [];
db.company.find ({"city": "msk"}, {"title": 1, "_id": 1}). forEach (function (a) {
result.company [a._id] = Object.deepExtend (a, result [a._id]);
company.push (a._id);
});
var comments = [];
result.comments = [];
db.comments.find ({"company": {"$ in": company}}). sort ({"createTime": -1}). limit (10). forEach (function (a) {
result.comments [a._id] = Object.deepExtend (a, result [a._id]);
comments.push (a._id);
});
return result;
} ');
Estiは私が必要なことをするためのより良いオプションですか?よろしくお願いします!