Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多文档更新mongodb casbah scala_Mongodb_Scala_Casbah_Salat_Mongodb Scala - Fatal编程技术网

多文档更新mongodb casbah scala

多文档更新mongodb casbah scala,mongodb,scala,casbah,salat,mongodb-scala,Mongodb,Scala,Casbah,Salat,Mongodb Scala,我有两个MongoDB系列 宣传短片集: { "_id" : ObjectId("5115bedc195dcf55d8740f1e"), "curr" : "USD", "desc" : "durable bags.", "endDt" : "2012-08-29T16:04:34-04:00", origPrice" : 1050.99, "qtTotal" : 50, "qtClaimd" : 30, } { "_id" :

我有两个MongoDB系列

宣传短片集:

{
    "_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")

}
声称的收集:

{
    "_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")

}
无论何时有人申请促销,都会在“claimedPro”集合中创建一个新文档,其中proId是第一个(促销)集合的(虚拟)外键。每个索赔都应在“促销”集合中增加一个计数器“qtClaimd”。以事务方式在另一个集合中增加价值的最佳方式是什么?我知道MongoDB没有对多个文档进行隔离

另外,我选择“非嵌入式”方法的原因如下

promo被创建并发布给用户,然后索赔将以100到数千的金额发生。我不认为将声明嵌入到promo集合中是合乎逻辑的,因为单个文档中会发生写入次数(“因为mongo会在数千个声明导致大小增加时调整promo集合的大小”)。采用非嵌入式方法可以使促销品集合不受影响,但可以在“索赔”集合中插入新文档。稍后在生成报告时,我必须显示“促销”详细信息以及该促销的“索赔”详细信息。使用非嵌入式方法,我必须首先查询“promo”集合,然后使用“proId”查询“claims”集合*同样值得一提的是,对于同一个“促销”,有时可能会同时发生100次“索赔”*

用这两个系列来实现trnsAction效果的最佳方法是什么?我正在使用Scala、Casbah和Salat,所有这些都是Scala 2.10版本

db.bar.update({ id: 1 }, { $inc: { 'some.counter': 1 } });
看看如何用SalatDAO运行这个,我不是游戏用户,所以我不想给你错误的建议
$inc
是Mongo的增量方式

看看如何用SalatDAO运行这个,我不是游戏用户,所以我不想给你错误的建议
$inc
是Mongo的增量方式