草庐IT

mongodb.driver

全部标签

mongodb - 断开 MongoDB 节点并独立运行

是否可以将分片节点从分片集中取出并独立运行?例如,每个分片都有一个特定的客户。谢谢。 最佳答案 是的,这是可能的。MongoDB“主”节点不知道分片。只有路由器(和配置服务器)知道。如果您使用正确的主机和端口,您也可以直接连接到您的节点。如果节点是副本集的一部分,那么事情看起来会有点不同。在这种情况下,您必须在没有--replSet选项的情况下重新启动服务器。但请注意不要取消PRIMARY节点。 关于mongodb-断开MongoDB节点并独立运行,我们在StackOverflow上找到

当 reduce 函数不使用来自 emit 的变量时,MongoDB MapReduce 出现奇怪的值

我想使用mapreduce来执行组聚合。这是我的map功能:function(){emit(this.TransactionType,{Count:1});}这里有两个reduce函数:function(key,values){varresult={Count:0};values.forEach(function(value){result.Count+=1;});returnresult;}function(key,values){varresult={Count:0};values.forEach(function(value){result.Count+=value.Count;

mongodb:这是我应该规范化我的嵌入式对象的地方吗?

我有一个包含EmbeddedThing的Parent集合,每个EmbeddedThing都包含对User。UserCollection:[{_id:ObjectId(…),name:'…'},…]ParentCollection:[{_id:ObjectId(…),EmbeddedThings:[{_id:1,userId:ObjectId(…)},{_id:2,userId:ObjectId(…)}]},…]我很快意识到我需要获取给定用户的所有EmbeddedThing,我设法使用map/reduce完成了这一点:"results":[{"_id":1,"value":[`Embed

mongodb - MongoDB 中的自定义平衡器

您是否编写了用于分片的自定义平衡器来平衡block而不使用MongoDB中的平衡器,您能否解释一下您的用例以及为什么必须这样做? 最佳答案 在我处理过的一些案例中,自定义平衡脚本暂时有用,例如,某些分片上的数据存在区域要求,或者某些集合不应该被平衡。在速度方面没有真正的优势(主要受磁盘和内存中的数据分布限制),事实上进行自定义平衡的一个原因是让它变慢。尽管要做到正确很挑剔-根据我的经验,从长远来看,通常不值得这样做。有一个平衡器窗口,您可以使用它来进行基于时间的平衡,并且在未来,block标记和将集合标记为“不平衡”的能力将使大多数

perl - 如何使用 Perl MongoDB 包在 Mongo 副本上进行 MapReduce

我正在使用Perlv5.12和MongoDB软件包v0.45。我想运行一个MapReduce作业来创建一个新集合,然后我将创建一个游标以供稍后使用。我的另一个愿望是这项工作在副本而不是主服务器上运行。如perl文档中所定义,MapReduce作业将使用run_command方法执行。当我执行perl脚本时,我得到:Mongoerror:notmasteratperlib/Connections.pmline63.阅读关于CPAN的MongoDB文档后,似乎只有一种方法可以使游标从副本读取。因此该方法不适用于对run_command()的调用。这是我的代码:subget_data{my$

regex - MongoDB 正则表达式分组

我有一个包含一堆文档的集合。我想在一个大字符串对象(未格式化的键/值)中查找并从中提取数据。是否可以使用这样的东西:db.apps.find({config:'/\n\n(.*)=(.*)\n\n?/'})提取这对值?我正在尝试使用php来执行此操作,但速度变得非常慢。我怎样才能找到一个干净的方法来解决它? 最佳答案 如果我没有正确理解您的问题,不幸的是mongo可能无法快速执行此查询。“查找”命令只会查找“配置”值与该正则表达式匹配的文档,但该查询可能很慢。即使您在“配置”字段上有索引,该索引也只能用于匹配正则表达式的固定前缀(参

Mongodb - 更新部分文档

在Mongodb中可以限制一次更新的文档数量吗?我有一个按插入日期(即按_id)排序的项目列表,我只想更新(示例)5个最旧的项目。我可以检索到我想要的信息db.mycoll.find({}).limit(5)我可以更新一个(因此循环上一个查询的结果)或所有(或使用组合)db.mycoll.update({"_id":ObjectId("4f672a5175fa1c01c100001d")},{$set:{'b':'test'}},false,true)db.mycoll.update({},{$set:{'b':'test'}},false,true)但是我无法通过对更新请求进行限制的

mongodb - 在没有鉴别器的情况下查询 MongoDB 中的文档

假设我使用以下结构和命令在MongoDB集合中创建一个文档:db.foo.insert({"PatientCore":{"Name":"JohnDoe","Age":30},"OnArrivalData":{"Readings":{"Temperature":100.1,"HBP":140,"LBP":88,"TimeStamp":newDate()},"AttendingDoctor":"Dr.SamuelJohn"},"TreatmentStage":[{"StageName":"Surgery","Readings":[{"Temperature":100.1,"HBP":130

MongoDB 为上限集合中的文档预分配空间

可以更新上限集合中的文档,但不会增加文档大小。我们需要更新文档,因此有一个问题-是否可以在第一次插入期间预分配空间并将其用于进一步更新。类似于:插入文档+1mb的零,然后更新文档以减少“假”零。 最佳答案 您实质上描述的是手动填充。我以前没有在上限集合的上下文中这样做过,但没有理由它不起作用。一般来说,避免对因更新而增长的文档进行代价高昂的移动是一种很好的做法。我还建议SO上的人们在查看嵌入与引用在他们的模式中的优缺点之前就这样做(在博客中存储最后5条评论,固定主字段的长度,引用例如,对于所有历史记录。官方手动填充文档在这里:htt

Mongodb 启动报错

我是mongodb的新手。我刚刚在我的ubuntu11.04系统上安装了它,当我在终端中输入mongo时,它显示如下MongoDBshellversion:1.6.3ThuMar2215:07:33***warning:spidermonkeybuildwithoututf8support.considerrebuildingwithutf8supportconnectingto:test>谁能告诉我哪里错了以及如何解决这个问题。非常感谢Ant的帮助和建议。 最佳答案 Ubuntu存储库有一个非常旧的mongoDB版本-在撰写本文时