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

メールによる返信