Tag: mongodb

如何使用快速validation器注册时validation用户名

我正在使用express / node为validation/授权创build后端api,并使用mongodb存储数据。 我正在使用express-validator来validationinput请求。 我想validation一个用户名是否已经存在 – 库build议我应该使用一个asynchronous函数来做到这一点。 虽然它在邮差中返回了正确的错误信息,但是我的服务器崩溃了。 错误:发送后无法设置标题。 Server.js app.use(validator({ customValidators: { isUsernameAvailable: function(username) { return new Promise(function(resolve, reject) { User.findOne({'username': username}, function(err, results) { if(err) { return resolve(err); } reject(results); }); }); } } })); auth.route.js var express = require('express'); var router = express.Router(); var controller = require('../controllers/auth.controller'); var middleware = require('../middleware/auth.middleware'); router.post('/login', […]

如何在mongoose和node.js中查询根据值来计算用户(类似于mysql distinct)?

我有一个在mongoose下面的集合: _id username problem_no 而problem_no可以是1,2或3。 我想在node.js中编写一个webservice,它会返回一个json,其中包含一些由problem_no区分的logging,例如: "1" : "17", "2" : "13", "3" : "0" 到目前为止,我尝试过像: var User = require('./model.js'); app.get('/countAll', function(req, res){ userModel // Uses Mongoose schema to run the search (empty conditions) var query = User.count({}); query.exec(function(err, users){ if(err) res.send(err); // If no errors are found, it responds with a JSON of all […]

SQLite:SELECT和DELETE

我有一个在Raspberry Pi中的sqlite3数据库,我有一个脚本,它将数据发送到mongo数据库服务器。 只要我发送数据到mongoDB我想删除该行。 但我无法做到这一点,下面是代码 var sqlite3 = require('sqlite3').verbose(); var sqlDB = new sqlite3.Database('Table23.db'); var mongodb = require('mongodb'); var MongoClient = mongodb.MongoClient; var url = 'mongodb://192.168.0.87:27017'; var winston = require('winston'); var id_1; winston.remove(winston.transports.Console); winston.add( winston.transports.File, { filename: 'error.log', level: 'info', json: true, timestamp: true, handleException: true } ); sqlDB.serialize(function() { sqlDB.each("SELECT * FROM Table23", function(err, row) […]

陷入二进制数据更改为base64(Gridfsstream)

我试图从我上传的图像更改一些二进制数据到base64,所以我可以使用它来显示图像。 但最小的是给我这个错误: TypeError: Cannot read property 'on' of undefined 我不明白,当我发布我也使用.on事件,它工作正常。 除此之外,我想知道我是否正确地更改了数据。 请考虑到我是相当新的节点:) 我如何保存上传的图像(POST) // Post to profile page router.post('/', function(req, res, next) { var busboy = new Busboy({ headers: req.headers }); busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { var conn = mongoose.createConnection('192.168.99.100:32773'); conn.once('open', function () { var gfs = Grid(conn.db); var writestream = gfs.createWriteStream({ filename: […]

修改mongoose响应数据

我有一个API调用,返回用户收到的所有消息为JSON。 模型数据如下所示: { sender: ObjectId, reciever: ObjectId, message: String } 修改API响应的JSON的正确方法是什么? 我想结束数据分组,如下所示: { <senderid>:[ all of the messages from this sender], <other_sender>:[ all of the messages from this sender] } 我必须在javascript中手动执行此操作,还是有更快的方法来利用mongoose做到这一点?

从nodeJS + Express返回一个空的响应

我很抱歉,如果这不符合官方标准,但请注意我尽了全力。 我有麻烦返回一个JSON响应在我的API从MongoDB实例抓取内容 基本上我有以下文件处理nodejs服务器(server.js): var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var Person = require('./models/people'); mongoose.connect('mongodb://localhost/testdb'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || 8080; var router = express.Router(); router.use(function (req,res,next) { console.log('something going on'); next(); }) router.get('/', function (req,res) { res.status(500).json({ error: 'unauthorized' }); […]

我如何获得Mongoose模型中的人口数量?

我是MongoDB和Mongoose的新手。 人口方法后,有没有简单的方法可以得到每个主题的答案? var query = Topic.find({}); query.select("title answersRef"); query.populate({path:"answersRef", select:"_id"}); //here I want count of answers query.exec(function(topicError, topicResult){ res.render('topic', { topic: topicResult }); }); 在网页上,我想显示每个主题的标题,我从数据库中find每个主题的评论数量。

MongoDB查询索引$ gt和$ ne

询问 我有这样的查询: db.sample.find({ bool1: false, theNull: null, existing: {$ne: null}, $or: [ { bool2: false, string: {$in: [<array of strings>]}}, { bool2: true, string: {$in: [<array of different strings>]}} ], dateField: {$lt: ISODate(<Given date>)} }).sort({dateField: -1}); 题 我正在寻找build立一个最佳的索引查询。 我打了很多,我想做得更好。 查询的部分 我的文档在大多数情况下(99.9%以上)将bool1设置为false , theNull为null, existing的95%的情况下不为null – 所以我需要这些字段(某处)将其过滤掉。 dateField是我sorting。 现在,我的有趣的数据集是string和bool2 – 这里是我有文档的变化,这基本上是查询过滤。 string总是来自相对包含的一组string(实际上是用户名),而bool2在文档数量非常less的情况下为真。 dateField大部分是连续的,实际的插入时间,但是在这里和那里存在差距,因为在一系列10-100个文档中,我必须将date移回几个月。 我到目前为止做了什么 迄今为止最好的结果是设定这些指标: { […]

将一个数组作为子文档添加到Mongoose模型实例中

我正在构build一个数据的数组,并希望将该数组推到子文档。 var pubArray = []; var count = 5 for (i = 0; i < count; i++) { pubArray.push({publicationName: req.body.publicationName[i], dateSent:req.body.dateSent[i]}); }; Students.findOne({studentNumber: filter}, function (err, student) { student.publications.push({pubArray}); student.save(); }); 如果我在{publicationName: req.body.publicationName[i], dateSent:req.body.dateSent[i]}使用{publicationName: req.body.publicationName[i], dateSent:req.body.dateSent[i]} ,那么它工作正常。 如果我尝试推动arrays,没有任何反应。

如何在Model.distinct()之后获取与不同值相关的所有字段

我有这样的架构: var PricelistSchema = new Schema({ Category : String, Family: String, Others: String, Brand: String, Volume: Number, Price: Number, City: String }); 我用Model.distinct()方法获得了“ Family field的Distinct values 。 但问题是我也需要知道每个不同的家庭价值类别的相应价值。 我试图通过MapReduce做,但我似乎无法得到正确的结果。 有人可以帮助我,这真的很重要。 样本输出: { "_id": "56af4c63ad0fd9ec149694d2", "Category": "Rum", "Others": "0", "Family": "Old Monk", "Brand": "OLD MONK WHITE RUM", "Volume": 375, "Price": 220, "City": "Delhi" }, { "_id": […]