Articles of mongodb

mongoose – 保存用户_id到不同的模式更改ID

我是新来的Mongo DB / Mongoose,并尝试将用户的ID添加到不同的架构时遇到问题。 首先这里是我的用户架构,按预期工作: const userSchema = new Schema({ email:{ type:String, unique:true, lowercase:true, trim:true, validate:[ validator.isEmail,'Invalid email address' ], required:'Please supply an email address' }, name:{ type:String, trim:true, required:'Please supply a name' }, userType:{ type:String, required:'Please supply a user type' }, teams:{ type:Array } }); userSchema.plugin(passportLocalMongoose,{usernameField:'email'}); userSchema.plugin(mongodbErrorHandler); module.exports = mongoose.model('User',userSchema) 其次,这里是我的团队架构,其中从用户模式创build的用户获取的_id出于某种原因存储为稍微不同的值: const teamSchema = […]

NodeJS – 快速重载res.render()后面的页面

我使用MongoDB和NodeJS(使用Express Framework)。 我实际上做了什么: 在MongoDb中抓取一些数据 呈现这些数据。 我想做的事: 筛选特定项目。 过滤的结果都是正确的,但我的问题是,该页面将呈现两次。 我怎样才能防止呢? 我有一个主要的比赛,实际上看起来像这样: app.get('/main', auth, function(req, res) { getItems(req, res, function(results) { renderResults(req, res, results); }); }); 这是我的renderresult函数: function renderResults(req, res, results) { console.log("In Rendermethode arrived:"); console.log(results.items); res.render('pages/main', { offerings: results.items, ownUser: { id: req.session.user || "" }, filterObj: { isActivated: typeof results.filterObj !== 'undefined', filterFor: typeof results.filterObj […]

mongo.Long $ inc大量失败

我正在使用nodejs(x64)下的mongodb 2.2.33 2.2.33库,并且在递增字段时遇到了问题: it('increment-test', function () { let db = repository.db; return setup .then(() => { return db.collection('product').save({ name: 'product1', amount: 0 }); }) .then(() => { return db.collection('product').update({}, { $inc: { "amount": mongo.Long(5000000000000000) } }); }) .then(() => { return db.collection('product').find({}).toArray(); }) .then((results) => { assert.equal(results[0].amount, 5000000000000000);//fails }) }); 这个testing失败了; 而不是5000000000000000你实际上得到937459712 我怎样才能得到这个在NodeJS下工作? mongo.Long似乎是从mongo.Long使用的正确types,但不起作用。 如果你想知道上面的testing通过,当你使用另一个大于Int32 […]

MongoDB:如何search数组除了特定值之外什么都不包含?

假设我有以下一组数据: {_id: "something", array: ["a", "b", "c", "d"]}, // 1 {_id: "something", array: ["a", "b", "d"]}, // 2 {_id: "something", array: ["b", "c", "d"]}, // 3 {_id: "something", array: ["a", "d"]}, // 4 {_id: "something", array: ["a", "b"]}, // 5 {_id: "something", array: ["d"]}, // 6 {_id: "something", array: ["c"]}, // 7 {_id: "something", array: […]

Mongo的数据库$推操作员不工作

我想通过使用req.params方法在mongo模型的对象中的数组中推送数据,但它给我错误: MongoError:不能使用部分(friends.username的朋友)遍历元素({friends:[]}) 这是我的代码: 后端 router.post('/accept/:id/:username',isLoggedIn,function(req,res){ User.findOneAndUpdate({username:req.user.username,'friendRequest._id':req.params.id}, {$set:{'friendRequest.$.Status':'Friend','friendRequest.$.Color':'green'}},function(err,founduser){ if (err) { throw err; } else { User.findOneAndUpdate({username:req.user.username}, {$push:{'friends.username':req.params.username}} ,function(err,founduser){ if (err) { throw err; } else { //Error is coming from this line User.findOneAndUpdate({username:req.params.username}, {$push:{'friends.username':req.user.username}} ,function(err,founduser){ if (err) { throw err; } else { res.render("back"); } }) } }) } }) }) **My Model** var mongoose […]

如何使用使用angular度2发布的nodejs保存包含图像的表单数据

我正在创build一个应用程序使用平均堆栈,其中我使用angular2为客户端。 我创build了一个包含一些input字段和图像的表单。 现在,提交表单我使用formdata发送数据到节点服务器。 现在我无法显示,访问和保存节点服务器上的数据。 请有人帮我,因为我是新的意思是堆栈。 数据数组: const newProduct = { category: this.pcategory, name: this.name, description: this.description, price: this.price, quantity: this.quantity, image: this.fileName } 这里是发送数据的代码:imagedata包含文件的数据 addProduct(newProduct, imagedata:File) { let formData: FormData = new FormData(); formData.append('body', JSON.stringify(newProduct)); formData.append('file', image, newProduct.imagedata); let headers = new Headers(); headers.append("enctype", "multipart/form-data"); headers.append("Accept", "application/json"); let options = new RequestOptions({ headers: headers }); […]

MongoJS:MongoError:无法使用正确的凭据连接到服务器

我正在使用这个插件: https : //github.com/mafintosh/mongojs 。 我曾经通过Node.js无需凭证login成功: var db = mongojs("dbname", []); 后来我closures了Mongo并重新启动了它,但是这次是用命令:mongod –auth。 我已经有一个用户到pipe理数据库。 然后我试图通过Node.js再次login,但这次用户凭证: var db = mongojs("username:password@mydomain.com:8080/dbname", []); 我也尝试了一种不同的语法: var db = mongojs("username:password@mydomain.com:271017/dbname", []); 我也试过: var db = mongojs("username:password@dbname", []); 正如你所看到的,我已经尝试了很多的语法方法,但没有什么诀窍。 我不得不提到,我使用的证书是好的,我刚刚通过Robo3T(Robomongo)和Mongo Compass成功login了相同的细节。 我也试图从pipe理撤销用户,并将其专门放在dbname,但它没有工作。 我的问题: 什么是正确的方式来login从Node.js的凭据? 请根据我在GitHub上使用和提供的库提供解决scheme。 (如果你有一个更好,更有效的方法,我会很高兴听到另外)。 popup一个半问题: 我注意到,当我强制Mongo要求用户继续使用数据库时,我在Terminal / SSH中收到错误: Error: not authorized on <dbname> to execute command { usersInfo: 1.0 […]

如何设置useMongoClient(Mongoose 4.11.0)?

这是我用来连接到我的数据库的代码: private connectDatabase(databaseUri: string): Promise<Mongoose.Connection> { return Mongoose.connect(databaseUri).then(() => { debug('Connected to MongoDB at %O', databaseUri); return Mongoose.connection; }); } 今天我更新了Mongoose到版本4.11.0,并且在运行我的testing时遇到了这个警告: (node:4138) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()` 我找不到任何有关如何设置useMongoClient的信息。 你们知道如何?

$ lookup结果显示

使用护照和nodejs和mongo / mongoose。 我将考勤logging存储在使用req.user.id作为查询的集合中,以将考勤logging绑定到注册用户。 关键字段被称为“userId”。 在尝试join时,我了解到用户集合中的_id不是stringtypes。 我一直在努力解决这个问题。 我最新的是在将req.user.id转换为ObjectId()之后尝试保存考勤logging。 但是,没有运气。 它看起来像userId仍然保存为string。 我怎样才能让这个join工作? router.post('/', ensureAuthenticated, function(req, res){ var query = { userId: req.user.id }; var update = { userId: new ObjectId(req.user.id), // This is where I need to save response: req.body.inOrOut, notes: req.body.notes }; // Upsert var options = { upsert: true }; // Use mongoose to […]

404在使用平均堆栈应用程序时未发现错误

我得到错误,因为404没有find,而试图张贴在铬使用邮递员的数据。任何forms的帮助将不胜感激。 我正在从以下链接执行此应用程序: https : //www.youtube.com/watch?v = wtIvu085uU0 这是我的代码。 app.js //importing modules var express=require('express'); var mongoose=require('mongoose'); var bodyparser=require('body-parser'); var cors=require('cors'); var path=require('path'); var app=express(); const route=require('./router/route'); //connect to mongodb mongoose.connect('mongodb://localhost:27017/contactlistapp'); //on connection mongoose.connection.on('connected',()=>{ console.log('successfully connected to database mongodb @27017'); }); mongoose.connection.on('error',()=>{ if(err) { console.log('Error in database connection:'+err); } }); //port number const port=3000; //adding middleware-cors app.use(cors()); […]