我想知道最好的方法來查詢mongo數據庫的許多對象,其中每個都有一個_id的數組連接到它。我也想抓住引用的對象。該對象的模式是這樣的:mongo:多個查詢或不是?
var headlineSchema = new Schema({
title : String,
source : String,
edits : Array // list of edits, stored as an array of _id's
...
});
...而這所引用,如果需要的話之一:問題的
var messageSchema = new Schema({
message : String,
user : String,
headlineID : ObjectId // also contains a ref. back to headline it's incl. in
...
});
一部分(當然,這取決於如果我想繼續下去這個路線)是推消息ID的不工作(編輯仍然是一個空數組[事後]):
db.headline.update({_id : headlineid}, {$push: {edits : messageid} }, true);
當我做我的查詢,我需要一次搶30「頭條新聞」,每個可以包含ref多達20或30條'消息'。我的問題是,獲取所有這些東西的最佳方法是什麼?我知道mongo不是一個關係數據庫,所以我打算首先抓住我需要的標題,然後循環瀏覽其中的30個,以獲取任何附加的消息。
db.headline.find({'date': {$gte: start, $lt: end} }, function (err, docs) {
if(err) { console.log(err.message); }
if(docs) {
docs.forEach(function(doc){
doc.edits.forEach(function(ed){
db.messages.find({_id:ed}, function (err, msg) {
// save stuff
});
});
});
}
});
這似乎是錯誤的,但我不確定如何繼續。我是否應該保留一系列附加信息?我還沒有結婚,我也沒有建立我的模式。如果有更好的方法來跟蹤它們之間的關係,或者更好的查詢來實現它,請讓我知道。 感謝