0

序文として、私はMongo-db-nativeでNode.jsを使用しています。

また、GridFSを使用して画像を保存しています。各画像にはメタデータがあり、そのうちの1つは製品IDです。

fs.files特定の商品に関連付けられているすべての画像と戻り画像をクエリしたいと思います。

これが私が現在これを行っている方法です:

this.collection.ensureIndex({
    product_id: 1,
}, function (err, edIndex) {
    self.collection.group(   ['group'] , {
        "product_id": ObjectID(product_id)
    } , {
        docs: []
    } , function (doc, prev) {
        prev.docs.push({
            width: doc.width,
            height: doc.height,
            _id: doc._id
        });
    } , true , function (err, results) { 
        if (err) {
            callback(err)
        } else {
            callback(null, results)
        } 
    });
});

これは非常に遅いと思います。誰かが代替案として、またはこれのパフォーマンスを向上させる方法について何か提案がありますか?

ありがとうございました!

4

1 に答える 1

1

これは、メタデータにProductId=42のすべてのGridFSファイルを検索するMongoシェル構文の簡単なクエリです。

db.fs.files.find({"metadata.ProductId": 42});

返されるドキュメントには、mongo-nativeのGridStoreで使用できるファイル名が含まれます。

于 2012-05-22T21:30:10.383 に答える