#mongodb #mongodb-query
Вопрос:
У меня есть следующий запрос TSQL. Как обновить то же самое в базе данных Mongo.
Сначала найдите количество продуктов на основе поставщика, а затем обновите количество таблиц поставщиков на основе количества продуктов, доступных в таблице продуктов.
Update Vendor
set Vcnt= p.cnt
from (select VendorId,count(*) cnt from Product
group by VendorId) p where Vendor.id=p.VendorId
Ответ №1:
Вы можете использовать агрегат для группировки количества по VendorId
. Затем повторите совокупный результат по каждому, чтобы обновить Vendor
коллекцию.
Пример кода:
db.Product.aggregate([
{
"$group": {
"_id": "$VendorId",
"cnt": {
"$sum": 1.0
}
}
}
]).forEach(function(result){
db.Vendor.update({
_id : result._id
}, {
$set: {
"Vcnt" : result.cnt
}
})
})