Articles of mongojs

如何从MongoJS查询输出中select值

我有MongoJS查询调用: db.users.find({username:"eleeist"},function(err, docs) { console.log(docs); }); docsvariables在控制台输出中看起来像这样: [ { _id: 4fee05662b17f88abbeb60b6, username: 'eleeist', password: 'test' } ] 我想显示用户eleeist的密码。 我试过docs.password但得到可怕的错误。 那么如何从返回的查询结果中select值呢?

如何通过mongojs知道mongodb的版本

dburl = "mongodb://127.0.0.1:27017/demo"; db = require('mongojs').connect(dburl); console.log(db.version); 我想知道使用mongojs的mongodb版本。

MongoDB和MongoJS – 无法使runCommand用于文本查询

我的目标是使用Node中的MongoDB(2.4.4)文本命令。 它从命令行工作正常。 基于以前的SO问题: 相当于Node.js中的mongo shell db.collection.runCommand() ,我尝试使用MongoJS(0.7.17),但无法完成。 这里是代码: mongojs = require('mongojs'); var products = mongojs('localhost:27017/mydb').collection('products'); products.runCommand('text', {search: 'a'}, function (err, docs) { … }); docs返回undefined,err为null。 我可以执行一个普通的函数,如products.find()罚款…我可以在MongoDB命令行上执行search。 任何人都知道如何做到这一点? 顺便说一下,这里是callback中包含的文档: { "queryDebugString": "||||||", "language": "english", "results": [], "stats": { "nscanned": 0, "nscannedObjects": 0, "n": 0, "nfound": 0, "timeMicros": 55 }, "ok": 1 } 顺便说一句,如果还有另一种方法使这个工作只与正常的本地驱动程序,我没事的。

Node.js(express,mongodb)注册过程

你好,Stackoverflow社区,我是新的Node.js /快递,我需要你的帮助,因为我卡住了一些问题。 我试图做一个注册过程中,后input保存到一个mongodb。 之前我想validation,如果用户的电子邮件地址已经存在于数据库中。 如果我尝试在db.users.find()语句中定义一个var应用程序将无法正常工作。 app.post("/sign-up", function(req, res){ var validate; db.users.find({email : req.body.email}, function(err, users) { if( err || !users){ validate = true; }else{ validate = false; } }); console.log(validate); if(validate == true){ db.users.save({ title: req.body.title, firstname: req.body.firstname, surname: req.body.surname, country : req.body.country, email: req.body.email, password: bcrypt.hashSync(req.body.password, 10) }, function(err, saved) { if( err || […]

在NodeJs中将对象从一个集合移动到另一个集合的最佳方式

如何将对象从一个集合移动到另一个集合? 什么是最简单和最安全的方法来做到这一点? 我正在尝试: app.post('/doneList/:id',function(req, res){ var id = mongojs.ObjectId(req.params.id); var oneTodo; db.todoList.findOne({_id: id},function(err,docs){ db.doneList.insert(docs,function(err,doc){ res.json(doc); }); }); db.todoList.remove({_id: id}); }); 但是当我尝试它时会崩溃。

Node.js和MongoDB无法规范化查询

我有一个在服务器上工作了6个月的NodeJS脚本,本周我已经安装了一个新的服务器,并安装了所有更新版本的软件,包括mongojs,nodejs和mongodb,不知何故,我的代码不再工作。 代码的一部分: collect.findOne({$or: [{from_id: enviou, to_id: viu}, {from_id: viu, to_id: enviou}]}, {sort: {$natural: -1}}, function (err, echoData) { if (err || !echoData) { console.log("No messages found -rv",err); } else { console.log(echoData); } }); 给我错误: { [MongoError: Can't canonicalize query: BadValue Projection cannot have a mix of inclusion and exclusion.] name: 'MongoError', message: 'Can\'t canonicalize query: […]

通过JavaScript从mongodb中读取辅助副本集

我有两个mongo实例在两个不同的服务器(一个主要和其他次要)运行; 我能够使用此连接代码从主服务器检索文档: var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin'); 但是,当我尝试从辅助服务器检索文档时,出现以下错误: {[MongoError:not master and slaveOk = false] 名称:'MongoError', 消息:'not master and slaveOk = false', OK:0, errmsg:'not master and slaveOk = false', 代码:13435} 我也尝试使用代码: var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin&slaveOk=true'); 我错过了什么?

MongoJS在使用正则expression式search时不返回数据

Node.js, mongojs ,mongodb。 我正在使用正则expression式search技能列表。 这是我的服务器代码: var nconf = require('nconf'); var db = require('mongojs').connect(nconf.get('mongolab:connection'), ['skills', 'users']); app.get('/api/skill', function(req, res){ console.log('searching for ' + req.query['q']); var query = '{name: /' + req.query['q'] + '/i}'; console.log('query: ' + query); db.skills.find(query, function(err, data){ console.log('returning ' + JSON.stringify(data)); if(!err){ res.writeHead(200, {'content-type': 'text/json' }); res.write( JSON.stringify(data) ); res.end('\n'); } }); }); […]

MongoJS限制和跳过

我需要使用限制,并跳过从mongo获得一些logging。 我用NodeJS使用MongoJS,但下面给出的是不工作。 下面是一个例子: db.users.find(function(err,doc{ console.log(doc); })).skip(2).limit(2); 我也试过类似的东西: db.users.find({ skip:0, limit: 5 }, function(err, results) { console.log(results); }); 我是新来的JS / NodeJS / MongoJS,请让我知道如何正确使用上面的代码。

MongoDB查询在mongo-shell上执行的时间为1ms,但在NodeJS上的执行时间为400ms以上

我有一个大的MongoDB集合,包含超过2GB的原始数据,我使用一个非常简单的查询来从集合中获取特定的文档。 文档大小的范围从10KB到4MB,Id字段被定义为索引。 这是我正在使用的查询(与mongojs模块): db.collection('categories').find({ id: category_id }, function(err, docs) { callback(err, docs.length ? docs[0] : false); }).limit(1); 当我使用MongoDB shell或Robomongo等GUI来执行这个查询时,无论物理大小如何,大约需要1ms的时间,但是当我在NodeJS上执行完全相同的查询时,响应时间从2ms到2s以上取决于数据量。 我只测量接收响应所需的时间,即使在.explain()等待超过500毫秒的情况下,MongoDB分析器( .explain() )显示仅执行一个毫秒即可执行查询。 现在,我可能做错了什么,但我不知道它是什么。 我对NodeJS比较陌生,但过去我曾经使用过MongoDB和PHP,而且从来没有遇到这样的性能问题,所以我倾向于认为我可能以某种方式滥用NodeJS。 我也试过在WebStorm上使用SpyJS进行分析,我看到有很多bson.deserialize调用快速地汇总成一个大堆栈,但是我无法进一步调查,因为SpyJS总是在这个时候崩溃。 可能有关,但我仍然不知道如何处理它。 请指教,任何线索将不胜感激。 编辑:这是db.categories.getIndexes()的结果: [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "my_db.categories" }, { "v" : 1, "key" : { "id" […]