В качестве предисловия я использую Node.js с Mongo-db-native.Производительность группы MongoDB в node.js
Я также использую GridFS для хранения изображений, и каждое изображение имеет метаданные, одним из которых является идентификатор продукта.
Я хочу запросить все 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)
}
});
});
Я нахожу, что это очень медленно. Есть ли у кого-нибудь предложения в качестве альтернативы или как повысить эффективность этого?
Спасибо!
Вы уверены, что разместили правильный код? – Martin
makeIndex() создает индекс, поэтому нет необходимости вызывать его для каждого запроса. – Martin