首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDb摩尔菲写关注

MongoDb摩尔菲写关注
EN

Stack Overflow用户
提问于 2016-03-15 11:25:32
回答 1查看 981关注 0票数 0

我使用的是Java线程进程,并且使用MongoDB 3.0 (而不是切分)和莫菲亚存在一些写入/更新问题。下面是它的工作原理:

1)线程--在具有特定"_id“的文档中更新某些数据(通过Morphia )

2)执行document.save()后,线程A将"_id“发送到线程B

3)线程B接收"_id",查询MongoDB检索书面文档

有时,线程B接收"_id",查询MongoDB,但没有得到文档的更新版本(仍然是旧值)。

我觉得这是个写的问题。我已经建立了MongoDB客户端和摩尔菲数据存储,如下所示:

代码语言:javascript
运行
复制
    MongoClient mongoClient = new MongoClient(new ServerAddress (host,port),
                                              credential);
    Datastore datastore = morphia.createDatastore(mongoClient, datastoreName);

    // Setting up writeconcern
    WriteConcern wc=new WriteConcern(1,0,false,true);
    datastore.setDefaultWriteConcern(wc);
    mongoClient.setWriteConcern(wc);

我遗漏了什么吗?在将消息发送到线程B之前,如何真正等待MongoDB中的Morphia更新文档?

EN

回答 1

Stack Overflow用户

发布于 2016-03-15 14:20:59

  1. 我想你会希望得到大多数人的关注:http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#MAJORITY
  2. 您是否配置了正确的读取首选项?primaryprimaryPreferred是您想要的,请参阅http://api.mongodb.org/java/current/com/mongodb/ReadPreference.html#primary--

PS:我认为您的WriteConcern创建是不可取的:http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#WriteConcern-java.lang.String-int-boolean-boolean-

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36009946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档