Articles of node mongodb native

NodeJS本地驱动程序上的示例MongoDB错误是什么样的?

我似乎无法find他们的文档或在互联网上的任何MongoDB错误对象的例子。 什么是一个示例MongoDB错误对象的样子? 我想“处理”错误和/或重新格式化它为我自己的目的,这取决于错误是什么。

运行命令相当于nodejs-native-mongodb

我正在尝试利用nodejs中的MongoDB 2.4实验文本searchfunction。 唯一的问题是,就我所知,本地nodejs mongo驱动程序似乎不支持集合级runCommand。 Mongo shell语法如下所示: db.collection.runCommand( "text", { search : "Textvalue" } ); 有一个db.command / db.executeDbCommand函数出现,但我不知道如何select一个集合并使用它运行文本命令(如果可能的话),因为它需要在集合级别而不是数据库级别。 任何帮助,将不胜感激

node.js – MongoError:不能规范化查询:BadValue坏秩序数组

我有一个数据库与以下文件结构: { "_id" : ObjectId("520bea012ab230549e749cff"), "Day" : 1, "Time" : 54, "State" : "Vermont", "Airport" : "BTV", "Temperature" : 39, "Humidity" : 57, "Wind Speed" : 6, "Wind Direction" : 170, "Station Pressure" : 29.6, "Sea Level Pressure" : 150 } 我需要为每个“国家”find最高的“温度”(例如,有100个文件,包括“州”,“佛蒙特州”),并在此文件中添加条目“month_high”:真(温度最高) 这是我的代码: http : //pastebin.com/UbACLbSF 但是当我在shell中运行程序时,出现以下错误: MongoError:无法规范化查询:BadValue坏秩序数组[2]

Node.JS + mongo:.find()。each()在第一批后停止

这让我难住了。 我有一个独立的(命令行执行的)节点脚本,其目的是遍历大型集合中的所有文档(数十万个),并为每个文档执行一些计算,运行一些额外的JS代码,然后用一些新的值更新文档。 根据cursor.each()的文档 ,一旦我从collection.find()获得游标, .each(cb)方法应该对整个集合中的每个项目执行cb(item) 。 示例代码: myDb.collection('bigcollection').find().each(function(err, doc) { if (err) { console.log("Error: " + err); } else { if (doc != null) { process.stdout.write("."); } else { process.stdout.write("X"); } } }); 我希望这样做是打印出数十万. 然后在最后打印一个X ,因为cursor.each()应该是“迭代该游标的所有文档”,并且根据示例代码“如果该项为null,则游标被耗尽/为空并closures“。 但是, 实际上做的是精确地打印出101 . 没有一个X在最后。 如果我调整批量大小( .find().batchSize(10).each(… ),它会在.find().batchSize(10).each(…之前精确地处理这些文档。 那么,为什么只处理第一批? 我不知何故误读.each()的文档? 这是否与这是一个命令行脚本的事实有关,并且在第二批结果返回之前,整个脚本以某种方式退出,或者什么? 如果是这样,我怎么确定它实际上处理所有的结果? 作为一个侧面节点,我尝试过使用.stream()和.forEach(),并且在这两种情况下,它都会在第一批之后进行沟渠。 更新:嗯,这很有趣。 只是尝试连接到我的生产服务器,而不是我的本地主机上的mongo实例,瞧,它运行通过整个集合像它应该。 服务器运行mongodb 3.0.6,我的本地实例是3.2.3。 我的版本的节点mongodb驱动程序是2.0.43。

如何在nodejs中同步连接到mongodb

我想利用承诺function,我可以同步连接到MongoDB,我可以通过传递到不同的模块重用连接。 这是我想出的东西 class MongoDB { constructor(db,collection) { this.collection = db.collection(collection); } find(query, projection) { if(projection) return this.collection.find(query, projection); else return this.collection.find(query); } } class Crew extends MongoDB { constructor(db) { super(db,'crews'); } validate() { } } 我想在我的初始代码中设置一个连接,就像下面的代码一样,然后重复使用不同类的连接,就像mongoose或monk一样,只使用node-mongodb-native包。 MongoClient.connect(url) .then( (err,dbase) => { global.DB = dbase; }); var Crew = new CrewModel(global.DB); Crew.find({}) .then(function(resp) { console.log(resp); […]

MongoDB连接不断增加

我一直在打我的连接限制,但httpstream量保持一致。 我使用MMS来分析我的mongod进程,并看到连接数不断上升: 我为Node.js(Express)使用mongoskin包装器。 我有一个自定义路由中间件,在执行其他路由之前连接到mongo数据库: var _connect = function(req, res, next) { res.db = mongoskin.db(_us.sprintf( '%s:%s@localhost:27017/%s?auto_reconnect', app.set('mongoDbUser'), app.set('mongoDbPw'), app.set('mongoDb') )); next(); }; 难道我做错了什么? 我应该如何打开和closures连接?

如何在node.js中重用mongodb连接

我正在使用mongodb的node-mongodb本地驱动程序来编写一个网站。 我有一个关于如何打开一次mongodb连接的问题,然后将它用在user.js中的集合名称用户和comment.js集合名称文章中 我想在db.js打开数据库连接,然后插入/保存用户和post集合的数据 目前的代码,我的db.js var Db = require('mongodb').Db, Connection = require('mongodb').Connection, Server = require('mongodb').Server; module.exports = new Db( 'blog', new Server('localhost', Connection.DEFAULT_PORT, {auto_reconnect: true}) ); 我在user.js使用了user.js ,如下所示 var mongodb = require('./db'); function User(user){ this.name = user.name; this.password = user.password; this.email = user.email; }; module.exports = User; User.prototype.save = function(callback) {//save user information //document to save […]

MongoError:驱动程序与此服务器版本不兼容

我刚刚安装了Mongo,Node等,当我尝试通过我的nodejs服务器更新数据库时,出现此错误: MongoError: driver is incompatible with this server version 这里是我有的版本: 节点 v0.12.2(最新版本是v0.12.3) Express v4.12.4(最新版本是v4.12.4) Mongodb v3.0.3(最新版本是v3.0.3) Mongodb Node.js驱动程序 v2.0.33(最新版本是v2.0.33) Mongoskin v1.3.23(最新版本是v1.3.23) 我有最新版本的一切,我已经search了节点的mongodb驱动程序的git来找出哪个版本的mongodb支持,但我找不到什么:( 我还读了其他SO问题,它说要更新您的mongodb,但我的是最新的版本! 任何帮助?

node-mongodb-native MongoClient意外closures连接

我一直在寻找很多mongodb中意外closures的连接,但是只能从想要closures连接的人那里find问题。 我正在使用node-mongodb-native连接到一个数据库,但我一直在看似随机的“错误:连接closures”消息。 如果我手动重试请求(浏览器刷新)请求的作品。 任何想法是什么造成这个? 有一些简单的选项,将有助于? 我得到我的数据库句柄使用: MongoClient.connect(connection_string, { auto_reconnect: true }, function (err, db) { //server code/routes in here } 我正在通过https://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/connection/server.js查看,但是我意识到我对连接池的pipe理方式的理解有限,向上。 我的印象是他们在我的服务器的一生中保持开放。 有人可以帮忙吗? 编辑:在阅读mjhm的评论之后,我开始更深入地研究TCP保持活力。 偶然发现了一些网站,说这可能是Azure的做法(现在这个问题被错误分类了!)。 显然,Azure负载平衡器在1分钟的活动之后终止连接。 我正在使用Azure网站,因此可能适用,也可能不适用,但我认为这种洞察力足以启动一个新的调查线。 更多细节在这里http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-timeout-details.aspx

node-mongodb-native – 在每次调用期间,游标将返回null作为最后一个值

所以。 我有一个非常基本的脚本,连接到一个数据库,并find一个有很多文件的集合,并将其限制为3个项目。 除了在结果结尾处,一切都平稳运行,并且在成功完成后,脚本不会终止,而是悄悄地closures连接。 在这里我声明我的params并创build我的数据库对象: var SERVER = 'localhost', PORT = 27017, DATABASE = 'test', COLLECTION = 'coll', mongo = require('mongodb'), db = new mongo.Db(DATABASE, new mongo.Server(SERVER, PORT, {auto_reconnect: true}), {}); 在这里,我连接到数据库,并继续用find光标和each函数来查询它: db.open(function(err, db) { if(err) throw err; var collection = new mongo.Collection(db, COLLECTION), cursor = collection.find({}, {}).limit(3); cursor.each(function(err, doc) { if(err) throw err; console.log(doc); }); […]