Tag: node mongodb native

GridFS:清理所有未被引用的文件

我刚刚在MongoDB中的GridFS中存储东西。 在testing过程中,我注意到许多文件正在创build,但没有正确删除。 我有一个收集users ,其中有一个字段的avatar 。 它包含文件的ObjectId 。 现在我想有一些命令可以用来删除那些没有引用的files和chunks 。 有一个查询可以做到这一点? 也许'地图减less'? 另外我不知道如何正确删除node-mongodb-native GridFS-Files。

MongooseJS应该在副本集断开连接上发送事件吗?

使用单个服务器设置,我从驱动程序接收事件。 mongoose.connect('mongodb://localhost/mydb'); mongoose.connection.on('disconnected', function() {…}); mongoose.connection.on('error', function(err) {…}); 当使用副本集( mongoose.connect('mongodb://localhost:27017/mydb,mongodb://localhost:27018/mydb'); )时,closures所有连接的集成员不会触发相同的事件。 我不是很熟悉的本地驱动程序的内部,我想知道这是一个错误,或者如果我需要手动检测到这种情况。 我正在使用Mongoose 3.6.17(mongodb驱动程序1.3.18) Sans mongoose,我试着用相同的结果(没有来自副本集的事件)。 require('mongodb').MongoClient.connect("mongodb://localhost:27017,localhost:27018/mydb", function(err, db) { if (db) { db.on('disconnected', function() { console.log('disconnected'); }).on('error', function(err) { console.log('error'); }); } });

在路由的Express应用程序中重用MongoClient

我想在我的路线中重复使用MongoClient连接(我已经看到有使用旧连接的方法,但是我想使用MongoClient,我也想有一个单独的数据库configuration文件 app.js(snippet) var route = require('route'); app.get("/", route.test); dbconf.js var MongoClient = require('mongodb').MongoClient; var mongourl = 'mongodb://localhost/test'; MongoClient.connect(mongourl, function(err, db) { if(err) console.log('Error connecting to ' + mongourl + ': ' + err); var coll = db.collection('testcollection'); }); route.js(snippet) exports.test = function(req, res) { //i would like to use the connection created in dbconf.js here […]

如何处理node-mongodb-native中的连接问题

如何停止缓冲查询,而当应用程序和数据库之间不存在连接时抛出错误? 我正在使用node-mongodb-native驱动程序。 var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://someremotedb:27017/test'; var db = null, xcollection = null; 正如在这个答案中build议,我正在打开一个连接,并保留它以备后用。 function connect() { MongoClient.connect(url, function(err, _db) { db = _db; xcollection = db.collection('xcollection'); db.on('close', function() { console.log("connection close mongoDB"); connection_retry(); }); db.on('error', function(err) { console.log("connection err mongoDB ",err); connection_retry(); db.close(); }); }); } 我就这样使用它 module.exports.xcollection_find = function […]

MongoError:当存储由xml2js模块生成的JSON对象时,key $不能以'$'开头

大家, MongoDB db.version() is 3.0.5 mongodb package.json shows 2.0.42 version xml2js package.json shows 0.4.9 version 我已经search了这个错误,并通读了所有现存的问题,而且没有一个符合我的情况(无论是jira问题还是gogle团队讨论等)。 这可能与mongodb本地驱动程序(或MongoDB服务器版本),xml2js或其他。 我做了大量的testing,并find了解决问题的方法,但是,我很想知道问题是什么。 我有一个应用程序,执行以下操作: 将XForm(survey.xml)上传到ExpressJS 使用xml2js库将XML转换为JSON对象(示例如下所示) 迭代2中创build的JSON对象,并删除不必要的字段(代码段代码如下所示) 使用mongodb本地驱动将3中修改的JSON对象推送到MongoDB 第4步失败,出现错误(在问题的标题中显示)。 有2个JSON对象,其中一个是调查表单,包含$ keys,但在将文档插入到mongodb之前,使用以下代码删除$键 (function traverse(o) { for (var i in o) { if (o[i] !== null && typeof(o[i])=="object") { //going on step down in the object tree!! if(o[i].$) { var ref = […]

将运行Node.js脚本作为CRON作业,而不closures数据库连接最终会杀死所有的RAM?

我正在构build将作为CRON作业运行的Node.js脚本。 (完整的terminal脚本)。 这些脚本使用API​​从各地获取数据,并使用MongoDB(本机驱动程序)。 我没有使用db.close()语句,因为这个脚本永远不会自行结束(或者至less从terminal看起来像这样),要完成它,有必要按CTRL + C取消。 那时候,当我写这些脚本的时候,Stack overflow的人告诉我,无论如何都不需要closures连接。 所以我让它成为。 现在我想知道,这些脚本实际上还在运行吗? 因为这些将作为CRON作业以小间隔运行,这是否意味着这些脚本最终会从服务器中杀死RAM? 这是否意味着,将有数千个脚本运行并等待db.close()语句? 示例代码: MongoClient.connect(mongoUrl, (err, db) => { if (err) { console.log(err); return; } var usersCollection = db.collection('users').find(); usersCollection.on('data', (doc) => { console.log(doc); });

node.js mongodb如何连接到mongo服务器的replicaset

我在应用程序中使用mongo和node.js mongo数据库由两台服务器组成。 在http://howtonode.org/express-mongodb中给出的例子中,我可以连接到一个服务器使用: ArticleProvider = function(host, port) { var database = 'node-mongo-blog'; this.db= new Db(database, new Server(host, port, {auto_reconnect: true}, {})); this.db.open(function(){}); }; 但是,我怎样才能连接到多个服务器,在我的情况下,有两个服务器。

string不能使用$ text

这段代码被转储为exception self.staticVars.Model .find({shortAddress: {$text : { $search: data.text }}, _town: data._town},{limit: 10}) .populate('_street _district') .sort({house: 1}) .exec(callback); 例外 Can't use $text with String 模型 shortAddress: { type: String }, 指数 collection.ensureIndex({fullAddress: 'text', shortAddress: 'text'}, { default_language: "russian" },function(){});

坏BSON文档:使用Node MongoDB驱动程序的非法CString

我收到: [Error: Bad BSON Document: illegal CString] 使用Node MongoDB驱动程序时,使用Cursor.each遍历我的一个集合。 这似乎使我的一些文件消失,并没有在集合中find,即使他们单独访问,当我使用Collection.findOne()查找它们。 这是否意味着我的数据以某种方式损坏?

处理MongoDB断开/重新连接节点

当我的MongoDB连接空闲了几分钟,下一个请求就结束了。 从mongo命令行客户端,它看起来像这样: > db.users.find() Sat Jan 12 23:42:35 Socket recv() errno:54 Connection reset by peer 107.22.25.25:47207 Sat Jan 12 23:42:35 SocketException: remote: 107.22.25.25:47207 error: 9001 socket exception [1] server [107.22.25.25:47207] Sat Jan 12 23:42:35 DBClientCursor::init call() failed Sat Jan 12 23:42:35 query failed : chowology.users {} to: ds047207.mongolab.com:47207 Error: error doing query: failed Sat Jan […]