0

Mongoose には、Mongoose populateを使用してリンクされた 2 つのスキーマがあります。

var SystemSchema = new Schema({
    name                    : {type : String, trim : true}
    , hosts                 : [{ type: ObjectId, ref: 'Host' }]
});

var HostSchema = new Schema({
    name                    : {type : String, trim : true}
});

私の質問: ホストの特定の ObjectId があり、どのシステムがそのホストへの参照を持っているかを確認したいと考えています。

これを行うのは、通常は SystemsSchema のみにアクセスし、ホストにデータを入力したいからですが、システムのホストも確認できるかどうか尋ねられました。今、ホストからシステムへの入力ではなく、単純に検索しようとしましたが、少し行き詰まっています。

私の試みの1つはどこで検索することでしたが、これは成功しません:

System.where('hosts').in(['4fabca804c9d76ac0b000022']).run(function(err, hosts) {
        console.log(hosts);
    });

このように検索する方法はありますか?HostSchema を単に SystemSchema のサブドキュメントとして配置するように言わないでください。これは単純化された例にすぎません。

前もって感謝します!

よろしく、 ウリ

4

1 に答える 1

0

私はあなたが逃したと思います.populate

 System
    .find({ hosts : '4fabca804c9d76ac0b000022' })
    .populate('hosts')
    .run(function(err, systems) {
         console.log(systems);
    });
于 2012-05-11T11:18:38.883 に答える