草庐IT

database-replication

全部标签

mongodb - MongoDb 中开发团队的生命副本

问:对于用于测试和开发的生命副本,哪种架构是最好的?当前设置:我们有两个这样的amazon/EC2mongod服务器:MachineA:Aproductiondatabase(onanamazon/EC2server)(nameit‘PROD’)Otherdatabases(‘OTHER’)MachineB:apre-productiondatabase(nameit‘PRE’)acopyfordeveloper1owntests(callit‘DEVEL-1’)acopyfordeveloper2(DEVEL-2)…DEVEL-nPRE数据库用于在部署到生产环境之前进行集成测试。DE

java - MongoDB 负载均衡的 Hibernate 配置

我有一个带有3个节点的小型mongoDB集群(没有分片,只有复制)。现在,对主节点的插入正在按预期将新数据传播到辅助节点(基本复制)。我正在使用java和hibernate。现在我想要的是在整个副本集之间对读取请求进行负载平衡,而不是始终使用主节点来提供数据。有什么方法可以告诉hibernate(通过查询字符串)可用服务器,hibernate以某种方式分发请求(随机或系统地)?实现负载平衡的正确方法是什么? 最佳答案 您正在寻找的设置称为阅读首选项。如果您查看dochere,你会发现:hibernate.ogm.mongodb.re

database - MongoDB - 过滤后获取嵌套数组大小的文档

问题:我正在尝试获取文档列表,并为每个文档计算给定值在同一文档的嵌套数组中出现的次数。我有一个使用聚合框架的工作示例,但我想知道是否有更好的方法来完成同样的事情,所以我可以对不同的方法进行基准测试。简化数据模型:集合“Raffles”中的单个文档:{"_id":objectId,"name":string,"ends_at":ISODate/Timestamp,..."subscribers":string[]//Listofuserids}集合由表示抽奖/抽奖事件的文档组成,其中包含名称和开始/结束日期。用户可以订阅抽奖事件。用户可以多次订阅同一个抽奖事件。95%的阅读查询都需要抽奖

database-design - 如何在这个嵌套文档结构(MongoDB)中进行查询?

(对不起,如果这是一个微不足道的问题。)我有这样的文档(Python语法):{'_id':SomeObjectId,'features':[{'id':'featureX','value':6},{'id':'featureY','value':45}]}使用此结构,可以轻松找到在特征列表中包含“featureX”的所有文档。但我也有兴趣检索子文档中关联的值。我认为在Python中,如果我通过这样的查询获取文档:db.articles.find({'features.id':'featureX'})那么我将需要遍历数组'特征”来找出正确的“值”。是否有其他类型的查询可以给我有趣的值(在

mongodb - 两个数据中心,连接中断,都继续写入,连接返回,同步?

我们有两个数据中心,并且正在从两个数据中心向Mongo写入数据。集合是分片的,我们在数据中心A中有一个分片的主分片,在数据中心B中有另一个分片的主分片。偶尔,数据中心之间的连接会失败。我们希望能够在两个数据中心继续写作。我们正在写入的数据不会冲突-它们都只是添加文档,或者更新不会在两个地方更新的文档。然后,当连接恢复时(有时在几秒钟内,甚至几分钟内),我们希望数据库能够很好地应对这种情况并自动更新所有数据。有人可以建议这是否可行吗?在文档中并没有太多说明当您将副本集划分为两个独立的数据库时会发生什么,然后让它们都成为主数据库,直到您重新连接它们。怎么了?我该如何设置?

mongodb - 搜索实现 : ElasticSearch vs MongoDB vs Relational Database

我正在设计一个大型旅游市场代理机构,其中有170000家酒店和3000种房型。我的实体的简单表示是:Hotel:destination:Parisrooms:room_a:type:singleroom_b:type:doubleRoomType:name:doublepaxes(peopleinroom):2最基本的搜索操作需要用户提供目的地和所需房间的数量以及每个房间的人数。在我看来,获取所有提供所需房间的酒店的简单SQL查询似乎很简单,但我担心我的数据大小。到目前为止,我只使用过关系数据库,之前没有使用过NoSQL数据库(例如MongoDB和ElasticSearch)的经验,我

mongodb - MongoDB 实例可以成为多个副本集的成员吗?

我想知道是否可以拥有一个属于两个副本集的mongoDB实例。例如:ReplicaSet1有成员10.10.1.1和10.10.2.1ReplicaSet2有成员10.10.1.1、10.10.1.2和10.10.1.3 最佳答案 不,单个mongod服务器不能是多个副本集的成员。这似乎没有在任何地方明确记录,所以我不得不寻找至少强烈暗示它的东西。首先,集合中的每个副本都有相同的数据库和集合,这是由重播主副本的操作日志的辅助副本维护的。次要节点将无法重放来自多个主要节点的操作日志。其次,db.serverStatus()命令返回一个包

mongodb - mLab 连接错误 : Database name cannot have reserved characters for mongodb://

我在运行mLab命令以通过mongoshell连接时遇到mongoDB连接错误。使用下面的mLab命令在Windowsgitbash终端下运行。我没有为数据库名称使用任何保留字符,基本上只是一个小写字符串。有什么想法吗?使用mongoshell连接:mongods237967.mlab.com:37967/-u-pconnectingto:mongodb://:27017/ds237967.mlab.com%3A379672018-01-01T00:20:45.371-0800EQUERY[thread1]Error:Databasenamecannothavereservedchar

database - 计算符合条件的数组元素

我有一个名为“session”的mongoDB集合,参与者如下:[{"_id":5b894357a0c84d5a5d221f25,"conferenceName":"myFirstConference","startDate":1535722327,"endDate":1535722420,"participants":[{"name":"user1","origin":"internal","ip":"192.168.0.2"},{"name":"user2","origin":"external","ip":"172.20.0.3"},]},...]我想得到以下结果:[{"conf

database - 在非关系数据库中存储喜欢

要点我在我的应用程序中实现了一个赞按钮。假设用户能够喜欢其他用户的产品。问题我现在想知道以下哪种方法是将这些点赞存储在非关系数据库(在我的例子中是MongoDB)中最有效和最可靠的方法。任何用户都不能对产品点赞两次,这一点很重要。可能的解决方案(1)存储那些喜欢产品本身的用户ID,并通过likes.length跟踪喜欢的数量//Productindatabase{likes:['userId1','userId2','userId3',...],...}(2)存储用户自己喜欢的所有产品,并通过产品上的数字跟踪喜欢的数量//Userindatabase{likedProducts:['p