質問

私はプロジェクトでSails-Mongoを使っています、そして私は組み込みコレクションで1つのクエリを実行する必要があります。 私のデータは次のようなものです:

{
    "_id" : ObjectId("53906c6254f36df504e99b8f"),
    "title"    : "my post"
    "comments" : [ 
        {
            "author" : "foo",
            "comment" : "foo comment"
        },
        {
            "author" : "bar",
            "comment" : "bar comment"
        }        
    ],
    "createdAt" : ISODate("2014-06-05T13:10:58.365Z"),
    "updatedAt" : ISODate("2014-06-05T13:10:58.365Z")
}
.

例えば、commentsfooを抽出する必要があります。
どうやら帆はまだこの機能をサポートしていませんので、 mongodb-native この種のクエリを作成する。
Sails-MongoがMongoDB-Nativeを使用しているので、私は私の帆プロジェクトでDBオブジェクトにアクセスできますか?またはMongoDB-Nativeを使用して新しい接続を構築する必要がありますか?
誰かがより良い考えを持っているならば、私は感謝します。ありがとう

役に立ちましたか?

解決

あなたがする必要があるのはアクセス埋め込まれたコメントは、ウォーターラインはうまくいくはずです。通常のfindまたはfindOneを実行し、コメントは返されたオブジェクトに対してアクセスできるはずです。

query の場合は、コメント、例えば。特定の作者によるコメントを含む投稿を見つけるには、帆走モデルクラスのmongodb-nativeメソッドを使用して基礎となる.native()コレクションにアクセスできます。

Post.native(function(err, collection) {
    if (err) { 
        // handle error getting mongo collection
    }
    collection.find({'comments.author':'foo'}).toArray(function(err, results) {
        // Do something with results
    });
});
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top