Tag: mongodb

查询布尔型字段为“不正确”(例如,假或不存在)

我敢肯定,我在MongoDB查询中缺less一些非常基本的东西,似乎无法得到这个简单的条件。 考虑这个集合 > db.tests.find() { "_id" : ObjectId("…"), "name" : "Test1" , "deleted" : true} { "_id" : ObjectId("…"), "name" : "Test2" , "deleted" : false} { "_id" : ObjectId("…"), "name" : "Test3" } 我只想查询所有“未删除”的项目 我知道如何find具有“已删除”标志设置为真的项目: > db.tests.find({deleted:true}) { "_id" : ObjectId("…"), "name" : "Test1" , "deleted" : true} 但是,如何find所有不被"deleted" (例如,否定上述查询,或者换句话说,任何没有"deleted"字段的项目,或者使其值为false 我猜的是什么 (请不要笑) > db.tests.find({$not […]

MongoDB中的$ unwind运算符是什么?

这是我第一次使用MongoDB,所以请容易与我:) 我无法理解$unwind操作符,也许是因为英文不是我的母语。 db.article.aggregate( { $project : { author : 1 , title : 1 , tags : 1 }}, { $unwind : "$tags" } ); 项目操作员是我能理解的,我想(这就像SELECT ,不是吗?)。 但是, $unwind (citing)会为每个源文档中展开的数组的每个成员返回一个文档 。 这就像一个JOIN ? 如果是的话, $project (带_id , author , title和tags字段)的结果如何与tags数组进行比较? 注 :我已经从MongoDB网站的例子,我不知道tags数组的结构。 我认为这是一个简单的标签名称数组。

在查询中对MongoDB $的响应顺序?

在条件运算符$的MongoDB文档没有提到任何有关顺序。 如果我运行一个查询的forms db.things.find({'_id': {'$in': id_array}}); 返回结果的顺序是什么? 有没有办法让我告诉MongoDB“我想要sorting结果,以便它们与id_array的id id_array ?”

Rediscaching和Mongo的持久性架构

设置: 想象一下,一个用户提交一个post,然后被许多(数百,数千或更多)用户阅读的“twitter like”服务。 我的问题是关于构buildcaching和数据库来优化快速访问和多次读取的最佳方法,但仍然保留历史数据,以便用户可以(如果他们想要的话)看到较旧的post。 这里的假设是,90%的用户只会对新东西感兴趣,并且偶尔会访问旧的东西。 另一个假设是我们想要优化90%,如果较老的10%需要一些时间才能恢复,那么就可以了。 考虑到这一点,我的研究似乎强调了90%使用caching的方向,然后将这些post存储在另一个更长期的持续系统中。 所以我的想法到目前为止是使用Redis的caching。 Redis的优点是速度非常快,而且它已经build在pub / sub中,这对于发布给许多人来说是完美的。 然后我正在考虑使用MongoDB作为一个更永久的数据存储来存储相同的post,这些post将在Redis过期时被访问。 问题: 这个build筑是否有水? 有一个更好的方法吗? 2.关于在Redis和MongoDB中存储post的机制,我正考虑让应用程序做2次写操作:第一次 – 写入Redis,然后立即可用于订阅者。 第二 – 在成功存储到Redis之后,立即写入MongoDB。 这是做这件事的最好方法吗? 我应该让Redis将过期的post推到MongoDB本身吗? 我想到了这一点,但我找不到直接从Redis推送到MongoDB的许多信息。

Mongo“prealloc”文件占用空间

我试图释放运行Mongo的Ubuntu服务器上的一些空间。 我已经附上了一个新的,空的8GB容量,并有空间移动的东西。 我在/ var / lib / mongodb / journal / prealloc中有几个大文件(1GB),删除这些文件还是移动它们是安全的? 如果我能移动它们 – 任何人都可以给我一个关于如何为Mongo做这个的指针?

如何在mongoose中进行原始的mongodb操作?

我这样问,因为当我编写unit testing时,我想放弃testing数据库并插入一些初始化数据,并在testing中检查mongodb中的数据。 所以我需要原始的操作mongodb。 如何在mongoose中做到这一点? 我现在可以做的只是创build连接,而不是在mongoose的官方网站find任何文件。 var mongoose = require('mongoose'); mongoose.connect('mongo://localhost/shuzu_test'); // get the connection var conn = mongoose.connection; 但如何: 删除数据库 创build一个集合 写一些数据到一个集合 查询集合 放下一个集合

如何解决错误:dbpath(/ data / db /)在MongoDB中不存在

我在我的Ubuntu 10.04中安装了mongodb。 我知道,当使用“ mongod ”命令启动mongodb服务器时,它需要/ data / db文件夹,并且可以通过创build“/ data / db /”来轻松解决。 还有一种方法是使用mongod –dbpath“path”来提供你自己的path,当我们打算给我们自己的dbpath时。 但是,通过http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/链接时,我发现有一个configuration文件。 我做了以下更改。 #mongodb.conf dbpath=/EBS/Work/mongodb/data/db/ logpath=/EBS/Work/mongodb/mongodb.log logappend=true 但仍然当我尝试启动服务器与“mongod”它会引发相同的错误,即错误:dbpath(/ data / db /)不存在 。 我想知道如何将我的dbpath永久redirect到我自己的自定义文件夹,因为每次您不想使用“mongod –dbpath path”键入path时,我们都会在configuration文件中进行一些更改。

MongoDB的数据目录/数据/分贝没有find

当我尝试在terminal中运行Mongod时,我收到了以下消息: 2015-05-14T17:33:04.554+0700 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating 2015-05-14T17:33:04.554+0700 I CONTROL [initandlisten] dbexit: rc: 100 并运行mongo命令: MongoDB shell version: 3.0.3 connecting to: test 2015-05-14T17:34:26.679+0700 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused 2015-05-14T17:34:26.681+0700 E QUERY Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed […]

Spring Boot以及如何将连接细节configuration到MongoDB?

作为Spring Boot的新手我想知道如何为MongoDBconfiguration连接细节。 我已经尝试了正常的例子,但没有涵盖连接的细节。 我想指定要使用的数据库以及运行MongoDB的主机的url / port。 任何提示或提示?

批量插入/更新使用Mongoid?

我GOOGLE和所有其他人,但我没有find答案。 问题是: 嗨,我怎样才能批量插入与Mongoid到MongoDB?