草庐IT

mongodb-community

全部标签

mongodb - Mongos 计数项目不是真实的?

我在mongos实例中有一个count()函数的奇怪行为。一个多小时前,我更新了帖子集合中的大约8.000个项目,因为我需要将标签对象转换为数组。现在,当我查询mongos时:mongos>db.posts.find({blog:'blog1',tags:{$type:3}}).count()4139mongos>db.posts.findOne({blog:'blog1',tags:{$type:3}})null为什么count()显示4139项并且findOne返回空值,即使RS已同步?编辑:有4个RS(全部同步)。我还对所有PRIMARIES进行了相同的计数查询,结果始终为0。只

mongodb - 将 mongo 中给定键/值对的查询结果作为返回值的数组返回的最简单方法是什么?

我在来自两个集合的文档中有一个名为id(不是_id)的字段。我需要将第一个集合的内容与第二个集合进行比较。基本上,我需要知道集合“A”中存在哪些具有给定值“id”的文档,但“B”中不存在。从集合A构建一个id数组的最简单方法是什么,我可以使用它来执行如下操作。:db.B.find({id:{$nin:array_of_ids_from_coll_A}})请不要纠结为什么我在这种情况下使用“id”而不是“_id”。谢谢。 最佳答案 严格来说,这并没有回答“如何构建一个数组......”的问题,但我会遍历集合A并尝试为每个元素找到B中的

mongodb - 禁用身份验证时在 MuleStudio 中配置 MongoDB 连接器 - "failed to connect"错误

我正在MuleStudio中编写一些流程,用于保存和查询MongoDB数据库。当指向一个具有dbAdmin和userAdmin角色的用户并配置了该用户的凭据的数据库时,流程工作正常。但是,当我将它指向另一个没有添加用户的数据库时,出现以下错误。我将用户名和密码保存在Mule的MongoDB连接器配置中,作为文档中建议的虚拟文本,然后将它们取出,但无济于事。我正在使用3.3.1CE运行时。带有虚拟凭据的错误消息:ERROR2013-10-1014:48:08,176[[sso-mds].connector.http.mule.default.receiver.02]org.mule.re

mongodb - Mongo,强制集合中的特定字段具有唯一值

我有一个集合:“foo”foo:{name:'steve'}因此,要使名称成为唯一索引,您可以运行:db.foo.ensureIndex({{name:1}},{unique:true})但是我想做的是确保只允许一个值为“steve”的名称。有没有办法使一个字段成为唯一索引,但指定它只应在该属性的值具有特定值时执行?伪查询.....db.foo.ensureIndex({{name:'steve'}},{unique:true})好foo:{name:'steve');foo:{name:'chris'};foo:{name:'chris'};foo:{name:'mike'};foo

mongodb - 它如何处理子文档的 $lt

我有一个集合,其中一个字段是一个子文档。我很困惑mongodb如何在完整的子文档上支持$lt、$gt查询运算符。示例:db.test.insert({a:1,subdocA:{x:4,y:7,z:10},b:10})db.test.insert({a:9,subdocA:{x:2,y:70,z:5},b:9})db.test.insert({a:4,subdocA:{x:8,y:2,z:45},b:19})在上面的集合中,我看到mongodb支持这样的查询:db.test.find({subdocA:{$lt:{x:6,y:5,z:25}})事实上它也支持与$gt运算符类似的查询。它还

mongodb - 镜像生产 Mongo 数据用于分析

我有一个Mongo集群来支持我在生产中使用的应用程序。它对我的业务非常重要,并且聚集在多个盒子中以优化速度和冗余。我想让所述集群中的数据可用于运行分析查询和排队任务,但我绝对不希望这些损害生产性能。是否可以将我的所有数据镜像到我放入集群的单个盒子中,并带有一些特殊标签,然后我可以将其用于分析?慢点就好了。我只是希望它便宜并且不影响生产读/写速度。 最佳答案 既然你在谈论冗余,我假设你有一个副本集。在这种情况下,您可以使用hiddenreplicasetmember执行您需要的计算。请记住,成员数必须是奇数。如果添加一个节点,您可能还

mongodb - 比较同一集合的两个字段

我想用cakephp在mongodb中比较同一个集合的两个字段(Mysql查询示例“SELECT*FROMtableAStWHEREt.field1>t.filed2;”)。我不能使用“$where”和mongodb的聚合,因为我也在使用mongodb的其他运算符,如$or、$and等。而且我正在使用mongodb的查找。例如:集合有两个整数字段per_day_budget和today_spent,我想获取today_spent小于或等于per_day_budget的记录列表。我希望这会让您更好地理解我的查询。请提出相同的解决方案。 最佳答案

mongodb - MongoDB 中的嵌套文档值搜索

给定MongoDB中的以下用户对象,按relation.$.status=='friends'搜索最快的方法是什么?需要找到一种方法在user集合的relation数据中查找,该数据包含一个值为"friends的对象"(参见下面的伪查询)。此特定集合的键已设置为uid,因此假设下面的“用户数据”部分可能不会更改。用户数据:{"_id":ObjectId('1a1a1a1a111a1a11a1a1a1a'),"name":"Tester","relation":{"2b2b2b2b2b2b2b2b2b2b2b":{"status":'friends',"status_changed_da

Mongodb聚合,如何组合或合并字段然后计数

我在一个集合中有property(home)数据。每个家庭可以有多个所有者,并存储为单独的字段,例如{home:1,owner1:Fred,owner2:Jason,owner3:Stan}我想获得前X个所有者姓名的列表。作为mongodb的新手,我能够改编一个基本示例来聚合和计算一个字段(owner1),但我不知道如何组合owner1、owner2、owner3的名称然后进行计数。我现在使用pymongo有什么x=data2009.aggregate([{"$group":{"_id":"$OWNER1","value":{"$sum":1}}},{"$sort":{"value":

mongodb - 使用脚本创建多个索引

如何使用脚本/文件创建多个索引,以便我可以在shell中运行它并在一个操作中创建所有索引?此处列出了信息:http://docs.mongodb.org/manual/tutorial/write-scripts-for-the-mongo-shell/我是否创建了一个javascript文件(.js),然后像这样依次列出所有ensureIndexes:db.data1.ensureIndex(..)db.data2.ensureIndex(..)db.data3.ensureIndex(..)db.data4.ensureIndex(..)这在语法上是否正确?这会编译吗?