草庐IT

elixir-mongo

全部标签

mongodb - 当有数百万条记录时,Mongo 计数真的很慢

//FASTdb.datasources.find().count()12036788//SLOWdb.datasources.find({nid:19882}).count()10161684nid索引有什么方法可以让第二个查询更快?(大约需要8秒) 最佳答案 计数查询(索引或其他方式)很慢,因为MongoDB仍然需要执行完整的b树遍历才能找到符合您条件的适当数量的文档。原因是MongoDBb-tree结构没有“计数”,这意味着每个节点不存储有关节点/子树中元素数量的信息。这里报告了这个问题https://jira.mongodb

java - 是否可以在 mongo 的组聚合后重命名 _id 字段?

我有一个这样的查询(简化):db.collection.aggregate([{$match:{main_id:ObjectId("58f0f67f50c6af16709fd2c7")}},{$group:{_id:"$name",count:{$sum:1},sum:{$sum:{$add:["$P31","$P32"]}}}}])我从Java执行此查询,我想将它映射到我的类(class),但我不希望_id映射到name字段。因为如果我这样做:@JsonProperty("_id")privateStringname;然后,当我将此数据保存回mongo(经过一些修改后)时,数据会以_

mongodb - Mongo字段A大于字段B

我正在Mongo中尝试一个简单的查询,在MySQL中看起来像这样。select*fromemailswherebounceCount>sentCount;到目前为止我有。db.email.find({bounceCount:{$gt:sentCount}});但我得到了这个错误JSError:ReferenceError:sentCountisnotdefined(shell):0如何在那个shell中引用sentCount? 最佳答案 它应该可以解决问题:db.emails.find({$expr:{$gt:["$bounceCo

mongodb - 即使重新安装后,Mongo 仍在等待 27017

我已经卸载并重新安装了mongo(3.0.1),确保我接受了Windows8上的网络访问,但我仍然遇到“等待27017”的相同问题。我发送的命令如下:PSC:\ProgramFiles\MongoDB\Server\3.0\bin>.\mongod.exe--dbpathC:\mongodb\data2015-04-01T21:33:46.787-0400IJOURNAL[initandlisten]journaldir=C:\mongodb\data\journal2015-04-01T21:33:46.790-0400IJOURNAL[initandlisten]recover:n

php - Mongo groupby 在 Laravel raw 方法中没有使用不同的时间

下面的代码是从MongoDB中获取数据,并在日期范围(sum(prepayment_amount)andsum(total_prepayment_amount)groupbycheckin_fromdate)内的图表中绘制金额和日期的总和。金额的总和位于y轴中,日期位于x轴中。从这段代码中,我得到了金额和日期的总和,但问题是,查看日期和时间2017-10-05T19:07:17Z&2017-10-05T00:00:00Z。在这种情况下,(sum(prepayment_amount)和sum(total_prepayment_amount)日期分别绘制。如果日期和时间是2017-10-0

mongodb - mongo dbname --eval 'db.collection.find()' 不起作用

为什么会这样:#mongodbnameMongoDBshellversion:1.8.3connectingto:nextmuni_staging>db.collection.find(){"foo":"bar"}>bye虽然这不起作用:#mongolocalhost/dbname--eval'db.collection.find()'MongoDBshellversion:1.8.3connectingto:localhost/dbnameDBQuery:dbname.collection->undefined应该是一模一样的吧?谢谢! 最佳答案

mongodb:UnknownError 断言 src/mongo/db/server_options_helpers.cpp:355

到目前为止,我一直在运行mongodb,没有任何问题。我真的不知道发生了什么,因为不记得有什么奇怪的事情。不过,现在当我尝试启动mongo服务器时出现以下错误。$mongod--config/usr/local/etc/mongod.conf2015-01-22T13:58:04.153+0100Assertionfailuregetcwd(buffer,1000)src/mongo/db/server_options_helpers.cpp3552015-01-22T13:58:04.169+01000x1017ae5aa0x1017591350x101745bf20x1015509

mongodb - 尝试启用 Mongo DB 身份验证时发生 TypeError

我在step3尝试启用MongoDB身份验证。当我尝试完全按照说明通过Mongoshell创建用户时,shell报告:TypeError:对象admin的属性“createUser”不是函数我使用--auth选项启动mongod并切换到admin数据库。一如既往,感谢您的帮助。 最佳答案 如果您使用的是Mongo2.4或更早版本,请使用addUser而不是createUser。Mongo2.4将此(如here所述)用于读取和写入用户以及dbAdmin角色:db.addUser({user:"joe",pwd:"secret",rol

mongodb - 如何在 Mongo 中实现 post 标签?

我正在玩弄Mongo来制作一个类似SO的宠物项目,并且我想实现post标签。每个标签都有一个名称和一个slug(用作URL中的id的字符串),一个帖子有多个标签。我希望能够创建诸如“查找具有标签A,没有标签B的帖子”之类的查询,并且我想知道执行此操作的mongo方式是什么。一种方法是在每篇文章中存储一组标签ID-这将使上述查询变得容易,但需要为每篇文章额外添加一个标签名称和slug。另一种方法是在每个帖子中存储一个[tagname,tagslug]数组,但我不确定我能否在find中使用该信息。还有其他方法对mongo更有效吗?我是NoSQL的新手,所以我很感激任何关于如何实现这一点的建

javascript - Mongo 客户端无法访问带有下划线前缀的集合

我在Mongo中用下划线命名了一个集合,但无法从shell访问它:meteor:PRIMARY>showcollections_assignmentschatmessages(...otherstuff)尝试在第一个集合上运行任何函数都会导致错误:meteor:PRIMARY>db._assignments.find()ThuJun1910:53:28.450TypeError:Cannotcallmethod'find'ofundefined但是,其他集合工作正常:meteor:PRIMARY>db.chatmessages.find(){"room":"j5oau9DJ6GNpT9