KOBA789 さん
下記のような形で動作を確認できました、ありがとうございます。
1つのコレクションから、ぶら下がる2つのコレクションを紐付けて検索する例です。
ドキュメントのObjectId で紐付けているため、親1に対して子1の関係です。
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
テストデータ
var sub1 = { id : "201206070000000294"
, date_time : "2009-11-14T12:50:42+09:00"
db.sub1.save(sub1);
var sub2 = { id : "201206070000000294"
, words : "京都,宇治茶,だんご,花"}
db.sub2.save(sub2);
var main = { id : "201206070000000294"
, type : "picture"
, date : sub1._id
, word : sub2._id
};
db.main.save(main);
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
モデル
var mongo = require('mongoose');
mongo.connect('mongodb://localhost/test');
var Schema = mongo.Schema;
var main = mongo.model('main', new Schema({
id : String,
type : String,
date : { type: Schema.ObjectId, ref: 'sub1' },
word : { type: Schema.ObjectId, ref: 'sub2' }
})
);
module.exports = main;
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
コントローラの中の検索
main
.find(condition)
.populate('date', ['date_time'])
.populate('word', ['word'])
.exec(
function(err, main) {
if(err) throw err;
・
・
・
}
);