親1に対して子2の関係も試してみました。

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

テストデータ

var word1 = { id : "201206070000000294"
           , words : "京都,宇治茶,だんご,花"}
db.sub.save(word1);

var word2 = { id : "201206070000000294"
           , words : "USJ,ワンピース,ベッキー,映画"}
db.sub.save(word2);

var main = { id : "201206070000000294"
           , type : "picture"
           , words:[word1._id, word2._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,
    words : [{ type: Schema.ObjectId, ref: 'sub' }]
    })
);
module.exports = main;

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

コントローラの中の検索

    main
    .find(condition)
    .populate('words')
    .exec(
    function(err, main) {
        if(err) throw err;
        ・
        ・
        ・
    }
    ); 

メールによる返信