당신은 특정 도시의 회사에 지난 10 개 의견을 선택해야합니다 컬렉션MongoDB. 3 개 개의 모음을
city: {"_id", "name"}
company: {"_id", "name", "cityID"}
comments: {"_id", "text", "companyID"}
있다.
지금 나는 도시에있는 모든 회사의 첫 번째 _id 선택하고 10 코멘트 _id 에서 수신 여기에 코드입니다 :$ 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의 더 나은 옵션은 내가 무엇을해야하는가? 미리 조언 해 주셔서 감사합니다.
코드를 들여 쓰면 도움이 될 것입니다. – JohnnyHK
[서버 측 JavaScript] (http://www.mongodb.org/display/DOCS/Server-side+Code+Execution#Server-sideCodeExecution-Using {{db.eval % 28 % 29)를 사용하지 말 것을 권합니다. }}) (이 링크는주의 사항 및 고려 사항으로 채워짐). 'MongoCollection :: find()'로 첫 번째 쿼리를 발행하고, PHP에서 회사 ID의 배열을 구축 한 다음 두 번째 쿼리를 발행 할 이유가 없습니다. – jmikola
JavaScript보다 서버 인 PHP에서 더 나은 이유는 무엇입니까? – jeka5555