草庐IT

Mongo_Dart

全部标签

javascript - mongo 查找数组中至少一项不在另一项中的文档

我在mongo中遇到这个问题,我想在其中进行查询(常规mongo查询,使用终端)以查找字段为空或至少有一个与数组不匹配的值的所有文档正则表达式。我的文档具有以下模式:{"id":"20","array":["abc123","abc456","def123","ghi123"]}和{"id":"21","array":["abc123","abc456","def123"]}我用来匹配它们的数组看起来像这样:[newRegExp(abc),newRegExp(def)]查询的结果应该只是第一个文档,因为这个包含“ghi123”,它与数组中的任何正则表达式都不匹配。我知道有$all、$e

mongodb - mongo BadValue 未知运算符 : $or

该集合有一个文档:{"_id":ObjectId("54b513933aca242d9915a787"),"carriers":[{"carrier":ObjectId("54b54d223aca242d9915a788"),"carryingInterval":{"from":ISODate("2013-12-31T23:00:00.000Z"),"to":null}}]}我想做一个标准,就是找一个特定的载体和范围。carryingInterval的from和to字段可以是Date对象或null.null值表示+/-无穷大。我的标准是:{carriers:{$elemMatch:{c

python - 使用 python 转储和恢复 mongo db

你好,我有一个简单的脚本,它使用来自远程mongo服务器的shell命令转储mongo数据库,然后运行​​shell命令将该数据库恢复到另一台服务器上的开发数据库。脚本位于/home/ubuntu/mongo,转储位于/home/ubuntu/mongo/dump这是我的代码:!/usr/bin/pythonimporttimeimportsubprocessimportosimportshutilnow=int(time.time())cmd="mongodump--host-dbchronotrack"printsubprocess.check_output(cmd,stderr=

mongodb - 不用 mongodump 命令转储和恢复 mongo 数据库

我需要一种方法来为特定的mongo数据库生成快照,并能够在另一台服务器上重新创建该数据库。我熟悉mongodump和mongorestore命令,但是我需要一个人类可读的文件(或者最好将所有内容打印到标准输出)整个数据库,mongodump还没有,这是已知和预期的,herearethedetailswhy.我有两个相关的问题。首先,mongodump是否产生除了集合名称和索引之外的任何其他关键数据(当转储特定数据库时),如果它产生了什么?如果我没记错的话,mongo可能不喜欢不同版本的转储,这也可能是个问题,是这样吗?其次,如果我手动提取集合名称和索引信息,将其存储到我自己的格式的js

python - 带限制的 Mongo 边界框查询

我们正在使用mongo(通过pymongo)在我们的系统中存储点数据库。此数据通过我们的API使用边界框查询($geoWithin)返回。我们希望将返回的结果数限制为从中心排序的200个。我试图找出最好的方法来做到这一点。目前,我们获得所有项目(无限制)。然后,我们计算距离并在python中排序。然而,对于大型数据集,这些计算非常缓慢且占用大量内存。谁有更好的建议?我在其他SO问题中看到无法对边界框查询进行排序。然而,这些问题中的大多数都是2年以上的问题。 最佳答案 好吧,我想我找到了解决办法。事实证明,您可以在同一个查询中同时使用

mongodb - 在 mongo 服务器级别设置 mongodb 读取首选项

我有一个主实例和一个mongodb的辅助实例。许多客户都在使用我的两个实例。每个客户都有自己对“次要”的阅读偏好我的问题是:有没有办法将mongodb配置为默认将读取首选项设置为“辅助”?谢谢MC 最佳答案 读取首选项是一个客户端设置,而不是服务器设置,所以不,据我所知这是不可能的。MongoDB的一个重要特性是您可以对查询进行非常细粒度的控制,即您可以为每个查询使用不同的读取首选项和写入关注点。将它们混合使用通常是有意义的,因为丢失日志条目可能不会太糟糕,而丢失付款则不然。同样,从辅助读取日志可能没问题,但如果您想协调事务,使用主

mongodb - 无法连接到 Mongo 数据库

我将AWS与EC2和EBS结合使用。该系统确实工作并添加了一个已安装的EBS驱动器。然后我将驱动器映射到/data并添加了/data/db,然后再为新数据文件夹更改mongod.conf。现在mongo不会启动。当我从ubuntu命令行输入mongo时,我得到以下信息。2015-04-14T10:49:21.292+0000WNETWORKFailedtoconnectto127.0.0.1:27017,reason:errno:111Connectionrefused2015-04-14T10:49:21.294+0000EQUERYError:couldn'tconnecttose

mongodb - Mongo - 匹配对象键可变的地方

我有一个包含以下对象的Mongo数据库:[{"link":"xxxxx.jpg""_id":ObjectId("5501b1648ef0b4eccc41814e"),"processed":{"320":true,"480":true,"540":true,"720":true,"800":true,"1080":true,"original":false,"iPhone":true}}]我正在尝试查询任何处理过的值是假的,但我似乎无法弄清楚如何查询我不知道哪个键匹配的地方。如果不遍历所有文档,这可能吗? 最佳答案 在MongoDB

mongodb - mongo-在投影期间转换一个字段的字段值以创建日期时间

我正在使用mongodbagregate框架,这就是我的普通对象的样子{"_id":"6b109972c9bd9d16a09b70b96686f691bfe2f9b6","history":[{"dtEntry":1428929906,"type":"I","refname":"ref1"},{"dtEntry":1429082064,"type":"U","refname":"ref1"}],"c":"SomeVal","p":"anotherVal"}这里的history.dtEntry是一个纪元值(请不要建议我在进入这里之前将其更改为isodate,这超出了我的范围)。我想将c、

java - 在 mongo-java 3 中自动获取 DBRef

过去版本的mongo-java驱动程序在DBRef对象上提供了一个.fetch方法。不过3.0好像没有。我仍然可以在表中存储和检索DBRef值,但是在迭代查询结果时没有手动查询该数据,是否还有其他我遗漏的方法?对每个返回结果进行新查询似乎效率低下。 最佳答案 是的,这是低效的。但是你在2.xx.x上做的完全一样。也许它被贬低的原因是,因为它可能暗示正在进行一些优化的事情。但是,如果您检查2.13.1的驱动程序源代码,您会发现它使用.findOne(...)进行查询/***Fetchestheobjectreferencedfromt