草庐IT

mongodb-cluster

全部标签

mongodb - 使用 MongoDB 配置 Sonata Media Bundle 的问题

我正在尝试使用MongoDB配置SonataMediaBundle,但在运行composer或清除缓存后出现此异常:[ErrorException]可捕获fatalerror:传递给Sonata\DoctrineMongoDBAdminBundle\Model\ModelManager::__construct()的参数1必须是Symfony\Bridge\Doctrine\ManagerRegistry的实例,给定的Doctrine\ODM\MongoDB\DocumentManager实例,在../vendor/sonata-project/media-bundle/Admin/M

mongodb - MongoRestore,跳过n个第一个文档

我正在恢复一个大型mongo数据库(90GB)。我正在使用mongorestore,它在大约70..90%的恢复过程中默默地失败了。有没有办法在启动mongorestore时跳过转储的前n个文档?我知道有一个过滤器选项,您可以在其中提供过滤器查询,但它没有帮助。如果我尝试再次恢复整个备份,由于重复索引错误,需要花费很多时间。我尝试再次恢复数据库,但再次失败(由于套接字异常)由于mongorestore似乎按顺序处理bson转储,我想知道是否有办法说:“只需跳过转储的第1'234'567个文档并恢复其余部分”我只有一大堆收藏。我已经在不同的部分打破了转储,但似乎还不够。告诉mongore

mongodb - 更改 mongod dbpath 引发权限错误

我的mongo数据库需要更多空间,所以我去了本地的电脑商店,买了一个新的硬盘,并安装了它。然后我将所有文件从/var/lib/mongodb复制到/media/didier/mongodb/mongodb/并更改了/media/didier/的所有权mongodb/mongodb/使用命令sudochown-Rmongodb:mongodb/media/didier/mongodb/mongodb/。然后,我更改了位于/etc/mongod.conf的配置文件以指向良好的数据目录。基本上,我按照ChangingMongoDBdatastoredirectory上的说明进行操作.权限看起

performance - MongoDB:按名称未知的子文档排序

我有一个像这样的MongoDB集合:{id:"213",sales:{'2014-05-23':{sum:23},'2014-05-22':{sum:22}}},{id:"299",sales:{'2014-05-23':{sum:44},'2014-05-22':{sum:19}}},我正在寻找一个查询,以让我的集合中的所有文档按总和排序(总和最大的文档...)。对于示例数据,它应该返回如下内容:{id:"299",sales:{'2014-05-23':{sum:44},'2014-05-22':{sum:19}}},{id:"213",sales:{'2014-05-23':{s

mongodb - Mongodb写的原子性

Mongo文档说单个文档写入是原子的,但在另一个地方它提到交错事务可能会在写入线程返回之前读取未提交的数据。我了解其他事务可以读取未提交的数据,因为写入可能尚未提交到日志。但是在writer线程还没有返回的时候线程如何读取数据呢。是否适用于写关注不是默认的情况?谢谢安库尔 最佳答案 有了引用,我现在可以了解上下文并告诉您这是关于什么的。Mongodocumentationsayssingledocumentwriteareatomic是的itmentionsinterleavedtransactionsmayreaduncommit

c# - 将 Mongodb 字符串反序列化为对象

我有一个对象作为我为其创建自定义序列化程序的属性。它所做的只是调用ToString,因为我想在我的集合中将数据表示为字符串。cm.MapMember(c=>c.myObjectProperty).SetSerializer(newObjectToStringSerializer());上面只调用一次并且在保存数据时运行良好。我可以看到具有预期字符串值的父对象。这是基本的序列化程序:publicclassObjectToStringSerializer:IBsonSerializer{#regionIBsonSerializerMemberspublicobjectDeserialize

javascript - MongoDB Group By _id 的时间戳

我希望按创建日期对一堆文档进行分组。使用MongoDB聚合框架,是否可以按_id的时间戳对文档进行分组?类似的东西db.sessions.aggregate({$group:{_id:{$dayOfYear:"$_id.getTimestamp()"},count:{$sum:1}}})谢谢 最佳答案 您在这里提到的函数是作为ObjectId包装器的shell帮助程序实现的JavaScript方法。各种语言的其他驱动程序实现包含类似的方法,其基本功能可以从mongoshell中看到,如下所示:function(){returnnew

node.js - 具有非空字段的 MongoDB/Mongoose 权重记录

我有一个MongoDB文档集合。我已经为特定字段分配了权重,但我需要将具有任何非空名称的记录加权到顶部。我不想按名称排序,我只是希望有名称的记录出现在没有名称的记录之前。示例模式:newSchema({slug:{type:String,index:{unique:true,dropDups:true}},name:String,body:{type:String,required:true}});示例索引:MySchema.index({name:'text',body:'text'},{name:'best_match_index',weights:{name:10,body:1}

mongodb - 使用 MongoDB 聚合将来自不同属性的值合并到一个数组中

我正在尝试找出是否会产生聚合运算符的组合,给定与此类似的输入文档:[{field1:1,field2:2},{field1:2,field2:3}]在具有单个数组字段的输出文档中,其元素是字段的不同值field1和field2输入文档的数量,在此示例中:{result:[1,2,3]}到目前为止我试过这些:$addToSet,但它似乎不支持多个参数,即不允许$addToSet来自同一文档中的多个属性$project到项目field1和field2进入结果数组字段,然后我可以$unwind然后$addToSet,但似乎也不支持将两个(或更多)属性投影到数组中。

java - MongoDB 驱动程序和集群

我正在从单个mongodb实例迁移到具有3个副本集、3个配置服务器和1个mongos实例的分片集群。每个副本集依次具有三个mongod实例。我在向集合中添加文档时正在寻找高可用性。我应该从我的Java程序连接到什么?我应该从任何副本集连接到mongos还是mongod?你能告诉我吗?谢谢。 最佳答案 在分片环境中,您的应用程序应始终连接到mongos实例。从您的应用程序的角度来看,mongos实例的行为与任何其他MongoDB实例一样。即使您有一个非分片数据库或驻留在单个分片上的集合,也建议您对所有操作使用mongos(即使这些操作