Tag: mongodb

如何在Mongoose中查询不同的值?

我有一个问题,我希望能够获得一个集合的所有独特的城市,我的代码看起来像这样: var mongoose = require("mongoose"), Schema = mongoose.Schema; var PersonSchema = new Schema({ name: String, born_in_city: String }); var Person = mongoose.model('Person', PersonSchema); 在本地MongoDb我可以做db.person.distinct("born_in_city") ,但似乎没有什么等同于Mongoose。 是唯一的select迭代所有的文件,我自己做到这一点,还是有更好的解决scheme? 在尝试使用node-mongodb-nativebuild议的底层node-mongodb-native ,我尝试这样做: mongoose.connection.db.collections(function(err, collections){ collections[0].distinct('born_in_city', function( err, results ){ console.log( err, results ); }); }); 但results是空的,没有错误。 我也希望能够通过名称只获取所需的集合,而不是过滤哪些collections如果可能的话。

如何在MongoDB中累计总和以获得总数?

对于一些有{ wins: Number } field { wins: Number }字段的集合,我怎样才能使用MongoDB Aggregation Framework来获取集合中所有文档的总数? 例: 如果我有3个文档, wins: 5 , wins: 8 , wins: 12 ,那么我怎样才能使用MongoDB Aggregation Framework返回总数,即total: 25 。

如何使用mongoose诺言 – mongo

有人可以给我一个关于如何使用mongoose的承诺的例子。 这是我所拥有的,但并不像预期的那样工作: app.use(function (req, res, next) { res.local('myStuff', myLib.process(req.path, something)); console.log(res.local('myStuff')); next(); }); 然后在myLib中,我会有这样的东西: exports.process = function ( r, callback ) { var promise = new mongoose.Promise; if(callback) promise.addBack(callback); Content.find( {route : r }, function (err, docs) { promise.resolve.bind(promise)(err, docs); }); return promise; }; 在某些时候,我期待着我的数据出现,但是我怎样才能访问它,或者得到它呢?

logging所有在应用程序中引起mongoose注意的查询

我有应用程序使用nodejs和mongodb。 我用mongoose做ODM。 现在我想在整个应用程序中logging所有发生mongoose触发的查询。 如何logging这些?

自动压缩mongodb中删除的空间?

这个mongodb文件说 为了压缩这个空间,从mongo shell运行db.repairDatabase()(注意这个操作会阻塞并且很慢)。 在http://www.mongodb.org/display/DOCS/Excessive+Disk+Space 我不知道如何自动删除mongodb磁盘空间? ps在mongodb存储了多达20GB的下载任务,在半小时内完成了。

MongoDB无法启动服务器:默认存储引擎“wiredTiger”不适用于此版本的mongod

MongoDB服务器无法启动,出现以下错误: 2015-12-13T00:49:12.191 + 0600 I CONTROL [initandlisten] options:{} 2015-12-13T00:49:12.195 + 0600 I STORAGE [initandlisten]例外 initAndListen:28663无法启动服务器。 默认存储引擎“wiredTiger”不适用于此版本的mongod。 请明确指定不同的存储引擎,例如–storageEngine = mmapv1。,终止2015-12-13T00:49:12.195 + 0600 I CONTROL [initandlisten] dbexit:rc:100

MongoDB stats()函数是否返回位或字节?

当使用MongoDB的.stats()函数来确定文档大小时,是以位还是字节返回的值?

Mongoose findByIdAndUpdate不返回正确的模型

我有一个问题,我以前没有见过与Mongoose findByIdAndUpdate不返回正确的模型在callback。 代码如下: var id = args._id; var updateObj = {updatedDate: Date.now()}; _.extend(updateObj, args); Model.findByIdAndUpdate(id, updateObj, function(err, model) { if (err) { logger.error(modelString +':edit' + modelString +' – ' + err.message); self.emit('item:failure', 'Failed to edit ' + modelString); return; } self.emit('item:success', model); }); 数据库中的原始文件如下所示: { _id: 1234 descriptors: Array[2], name: 'Test Name 1' } updateObj进入如下所示: […]

在OSX上安装和运行MongoDB

如果有人能在这里提供一些见解,我将非常感激。 我是MongoDB的新手,对于命令行(相对)是新手。 我有一个express / node.js应用程序在MongoDB本地成功运行,但重新启动我的电脑后,我试图重新启动Mongo服务器,它开始给出错误,不会启动。 从那以后,我重新安装了Mongo几次才发现相同的错误发生。 这是我收到的: privee:mongodb-osx-x86_64-2.4.6 jonlinton$ ./bin/mongo MongoDB shell version: 2.4.6 connecting to: test Mon Aug 26 14:48:47.168 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145 exception: connect failed 我错过了一个步骤? 我应该创build一个configuration文件? 一些基本的指导将是非常有帮助的。 在此先感谢您的任何见解。

与Mongo连接时,system.profile集合中缺less用户字段

我们有一个MongoDB集群和通过Mongos实例连接到它的客户端。 簇中的单个mongo都是以–auth运行的,Mongo在与它们通信时使用–keyfile 。 我们正在分析缓慢的查询,但没有得到通过Mongo查询的用户名。 为了更清楚: 如果我直接连接到一个Mongo,进行身份validation并运行查询,那么以后我可以查看system.profile集合,并且user字段将填充我的用户名。 如果我通过mongos进行连接,进行身份validation并运行查询,则system.profile集合包含有关查询的分析信息,但用户字段为空。 身份validation是必需的,我不能在没有经过身份validation的情况下通过Mongo运行查询,但是用户名似乎没有包含在分析信息中,我们真的希望能够看到它。 有任何想法吗? 我可以改变我们的configuration吗?