Tag: mongodb

mongoose更新总是给我TypeError:不能设置未定义的属性'__v'

我试图更新一个socketId为''每当用户断开连接。 但不知何故,我总是得到这个错误 update.$setOnInsert[this.schema.options.versionKey] = 0; ^ TypeError: Cannot set property '__v' of undefined 例如,如果有人被断开,我的目标 socketId = ZH_Ic0zD8QkmNYuJAAAE; will be socketId = ''; 这是代码 socket.on('disconnect', function() { console.log(socket.id); var disconnectSocketId = ''; User.findOneAndUpdate({socketId: socket.id}, disconnectSocketId, {upsert: true, new: true}, function(err, doc) { if (err) { return console.error } console.log(doc.socketId); }); });

Visual Studio代码 – MongoDB的TypeScript定义

我正在尝试使用Node.js和Express构build一个简单的Web应用程序。 在本指南中显示,使用tsd安装了两个定义之后。 尝试tsd query mongodb –action install它不会得到像zero result或类似的错误,但仍然不能显示在vscode自动完成。 我想如果可以安装MongoDB定义。 可以? 编辑: mongodb.d.ts是在我的项目中mongodb.d.ts typings\mongodb文件夹。

'找不到那个阵型'heroku部署错误

我正在尝试在Heroku上部署一个MEAN堆栈(MongoDB-Express-Angularjs-Nodejs)应用程序。 当我用git push heroku推我的代码后,我得到以下错误:“缩放dynos …失败!找不到那个阵型”。 我已经检查了没有运气的解决scheme。 我创build了一个Procfile,但是没有帮助。 我仍然得到同样的错误。 任何想法,我怎么能得到这个启动和运行。 我会包括更多的代码,但我不知道问题出在哪里,所以请问,我将包括必要的代码。

在Mongoose的模式中使用短字段名称是可取的吗?

也许与我昨天在这里问的未答复的问题有关是否build议在Mongoose的模式中使用短字段名称的问题? 根据这里的文章 ,更长的字段名称会在服务器的硬盘中产生更大的数据库,以及内存中使用的任何caching。 真的吗? 为什么Mongoose的devise者没有使用某种字段名称映射机制来节省数据库空间?

为什么我在MongoDB中的字段现在为空?

我插入每一个在mongo数据库字段像{text:data.text,userId:'5454234ddsc32fcsd23dsdfe3'} 。插入更多的领域,像这样一个仍然没问题,剩下的都是null。我该怎么办?我认为mongo看到这个像重复。我认为我应该允许重复。这里是我的模式。 var ConversationsSchema=new Schema({ conversations:{type:Array, text:String, sender:String, to:String, userId:{type:String,select:true,unique:false} } }) 更新查询: Conversations.update(({_id:data.conversationID},{$addToSet:{conversations:{text:data.textMessage,sender:data.sender,to:data.to,userId:data.userId}}}),function(err){ //console.log('Cannot update your conversation') console.log(err); }) 谢谢你的帮助!

dynamic定义mongoose模型方法

我是在一个function的情况下,能够根据不同的情况进行search。 它返回相同的数据集,它只是search不同的字段:userId或tagId。 因此,在我的代码中,我有这样的东西: var findByMethod; if (searchBy === 'userId') { findByMethod = UserArticleModel.findByUser; } else { findByMethod = UserArticleModel.findByTag; } findByMethod(idToSearch, function (err, articles) {…}); findByUser和findByTag是findByTag中定义的静态方法 UserArticleModel.js var mongoose = require('mongoose'); var userArticleSchema = new mongoose.Schema({ … } }); userArticleSchema.statics.findByUser = function (userId, callback) { this.find({userId: userId}, function () {…}); }; userArticleSchema.statics.findByTag = function (tagId, […]

如何在Node.js中正确打开和维护连接到多个Mongo数据库?

我完全不熟悉Node.js和Mongo db。 不过,我想开始第一个项目来熟悉所有这些东西。 服务器应用程序将基于expression式,我想出了三个不同的mongo数据库appDdata,sessionData和userData。 现在我很难弄清楚如何连接到这些数据库,以及如何维护连接并传递访问对象。 在大多数express / mongo教程中,有这样的玩具例子: MongoClient.connect('mongodb://localhost:27017/blog', function(err, db) { "use strict"; if(err) throw err; // Register our templating engine app.engine('html', cons.swig); app.set('view engine', 'html'); app.set('views', __dirname + '/views'); // Express middleware to populate 'req.cookies' so we can access cookies app.use(express.cookieParser()); // Express middleware to populate 'req.body' so we can access POST variables […]

大多数准系统的MongoDB Express.js应用程序

什么是最简单的使用express.js的MongoDB应用程序? 我不想要任何幻想。 我基本上只需要一种方法来添加事物到数据库,并在以后查询。 什么是最简单的方法来做到这一点? 请回答这个,好像我是一个蹒跚学步的孩子。 我已经习惯了Meteor应用程序的简单工作stream程。

如何在mongodb中更新子文档模式结构中的数组字段

TaskInfo架构: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var taskInfo = mongoose.Schema({ isactive:{type:Boolean}, taskobject:{type:String}, taskdetails:{type:String}, iscompleted:{type:Boolean} }); var TaskInfo = mongoose.model('TaskInfo', taskInfo); module.exports.TaskInfo = TaskInfo; module.exports.TaskInfoSchema = taskInfo; TaskSchema: var mongoose = require('mongoose'); var TaskInfoSchema = require("./taskinfo.js").TaskInfoSchema var Schema = mongoose.Schema; // Task schema var taskSchema = mongoose.Schema({ tasktype : {type: String}, createdon : […]

在哪个格式发送文件将其保存在gridfs?

Hy每一个, 请,我正在研究一个项目使用nodeJS,我想知道,我的节点客户端必须发送文件到服务器(是在Base64格式或其他?)的格式。 我的客户是: //client.js $('#file').on('change', function(e){ encode64(this); }); function encode64(input) { if (input.files){ chap.emit('test', { "test" : input.files[0] }); var FR= new FileReader(); FR.readAsDataURL(input.files[0]); FR.onload = function(e) { chap.emit('test', { "test" : e.target.result } ); } } } 我的服务器端是: socket.on('test', function(e){ var gs = new gridStore(db, e.test,"w"); gs.writeFile(new Buffer(e.test,"base64"), function(err,calb){ if (!err) console.log('bien passe'); else […]