У меня есть две коллекции MongoDBНесколько документов обновление MongoDB Касба Scala
промо коллекция:
{
"_id" : ObjectId("5115bedc195dcf55d8740f1e"),
"curr" : "USD",
"desc" : "durable bags.",
"endDt" : "2012-08-29T16:04:34-04:00",
origPrice" : 1050.99,
"qtTotal" : 50,
"qtClaimd" : 30,
}
утверждал коллекция:
{
"_id" : ObjectId("5117c749195d62a666171968"),
"proId" : ObjectId("5115bedc195dcf55d8740f1e"),
"claimT" : ISODate("2013-02-10T16:14:01.921Z")
}
Всякий раз, когда кто-то утверждал, промо, новый документ будет создан внутри коллекции «утверждаемыйPro», где proId является (виртуальным) внешним ключом для первой (промо) коллекции. Каждое требование должно увеличивать счетчик «qtClaimd» в коллекции «promo». Каков наилучший способ увеличить стоимость в другой коллекции транзакционным способом? Я понимаю, что у MongoDB нет изоляции для нескольких документов.
Кроме того, причина, почему я пошел с «не встраиваемый» подход, как следовать
промо получает создан и опубликован для пользователей, то претензии будут происходить в 100s тысяч количествах. Я не думал, что логично вкладывать претензии в промо-коллекцию, учитывая, что количество записей будет происходить в одном документе («coz mongo изменяет размер рекламной коллекции, когда размер растет из-за тысяч претензий»). Наличие не-внедренного подхода не влияет на промо-сбор, но вставляет новый документ в коллекцию «претензий». Позже, создавая отчет, мне придется отображать «промо», а также детали «претензий» для этого промо. С не-внедренным подходом мне придется сначала запросить коллекцию «promo», а затем собрать «заявки» с помощью «proId». * Также стоит упомянуть, что могут существовать случаи, когда 100 «претензий» могут происходить одновременно для одного и того же «промо» *.
Каков наилучший способ добиться эффекта trnsactional с этими двумя коллекциями? Я использую Scala, Casbah и Salat с версией Scala 2.10.