Tag: mongodb

一个数据库,支持多区域应用

有没有办法让一个数据库(MongoDB)能够以最小的延迟支持多区域应用程序?

使用节点js和mongodb时出现多个连接错误

我正在使用位于我的/routes/schema.js文件中的以下架构… var mongoose = require('mongoose'); var Schema = mongoose.Schema; var userSchema = new Schema({ username: String, password: String, name: String, last: String, year: Number, degree: String }); var User = mongoose.model('User', userSchema); module.exports = { User: User } 在我的/routes/register.js文件中,我正在使用POST数据存储一些信息… var User = require('../routes/schema').User; exports.postRegister = function (req, res) { var u = new User({ username: […]

Mongoose / NodeJS – 来自数据库的string被检索,但被视为未定义

这是我现在的问题: 我查询findOne并填充我的数据库为了检索我的.EJS使用的string数组,但日志说,价值没有定义,但它给的价值的名称:“ string名称未定义” 我一定错过了什么.. 这是用户架构: var UserSchema = new mongoose.Schema({ username: { type: String, required: true, index: { unique: true } }, email: { type: String, required: true, index: {unique: true } }, password: { type: String, required: true }, tables: [{ type: Schema.Types.ObjectId, ref: 'Table' }], resetPasswordToken: String, resetPasswordExpires: Date, uuid: String, }); 这是表格模式: […]

我应该如何使用MEAN堆栈来处理我的后端devise?

这可能更多是寻找build议的情况。 但是,我将提供示例代码作为我想要实现的示例。 我正在尝试构build我的第一个后端系统,并且一直在遇到devise问题。 我的MongoDB数据库由四个主要部分组成 – configuration文件,团队,草稿和用户。 configuration文件(是使用ID来源的所有主要数据)架构具有用于保存具有团队和草稿ID的数组的属性。 这个想法是,当configuration文件被提供时,它将通过使用ID来填充所有这些属性和相关数据。 使用Mongoose的configuration文件模式的示例: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var UserProfileSchema = new Schema({ Name : String, Email : String, Admin : Boolean, Status : Number, UserID : String, PrivateProfile: Boolean, Drafts: [String], //This array holds the draft IDs Teams:[String] //Holds the team profiles IDs }); module.exports […]

在azure上缩放nodejs,socket.io和mongodb

我们有一个应用程序运行在一个单一的天青虚拟机上(Windows服务器R12数据中心)。 由于交通和负载的巨大,我们正在计划扩大我们的系统。 该应用程序是我们在nodeJs,socket.io和mongodb(MongoLab或MLAB)上开发的游戏。 我们的初步计划如下: 扩展操作系统:使用azure色的虚拟机规模集。 扩展数据库:鉴于我们正在使用Mlab(一个mongodb数据库即服务),我们认为缩放是由他们完成的。 对Nodejs和Socket.io的缩放效果 :我们不确定…(任何提示) 任何有这些技术经验的人都可以评论这个堆栈吗?

Node.js删除查询“mongodb”

我一直在试图理解为什么这个删除查询不能工作几天,我只是不能看到问题。 我已经尝试了许多不同的删除查询,如deleteOne,findOneAndDelete,deleteMany,但都没有工作。 我为node.js使用“mongodb”客户端 mongo.connect(serverAddress, (err, db) => { //(db connection is ok, server can find and create documents) var doc = db.collection('myCollection'), docToDelete = "575807172154b7a019ebf6db"; //I can see the same document id on my database doc.deleteOne({"_id":docToDelete}, (err, results) => { console.log(`Request success : ${results.result.ok}, documents deleted : ${results.result.n}`); //Request success : 1, documents deleted : […]

在节点js中,mongo中的$ invariablesreplace不起作用

我已经构build了/57639afa5961debc1b256745/, /5763c5d17d05688c1838c7a3/,节点path/57639afa5961debc1b256745/, /5763c5d17d05688c1838c7a3/,但是当我尝试使用nodepath /57639afa5961debc1b256745/, /5763c5d17d05688c1838c7a3/,即使它有子节点/57639afa5961debc1b256745/, /5763c5d17d05688c1838c7a3/,得到空数组的结果: Degree.prototype.findByPath = function(dbObj, degrees) { var nodePath = ''; for(var i in degrees) { nodePath = nodePath + '/' + degrees[i]['_id'] + '/, '; } return new Promise(function (resolve, reject) { console.log(nodePath); dbObj.collection('degree').find({ 'path': { '$in': [ nodePath ] } }).toArray((err, results) => { if(err) { reject(err); } else […]

Node.js如何将geojson从mongodb传递给我可以在前端使用的对象

我正在尝试将存储在mongoDB中的5m点进行聚类。 1查询的最大结果目前只有1米左右,所以我决定使用: PruneCluster作为第一个视觉效果。 点存储为geoJSON对象,并在其上有2dsphere索引。 我使用本机node.js驱动程序连接到mongodb并查询以find多边形内的点,这将只会从集合和路由结果中返回loc字段以进行预览: router.get('/map', function(resq,res) { var MongoClient = mongodb.MongoClient; var url = 'mongodb://localhost:27017/airboost'; MongoClient.connect(url, function(err, db) { if(err){ console.log('Unable to connect to db ', err); } else { console.log('Connected!!!'); var collection = db.collection('listingsF'); collection.find({ loc: { $geoWithin: { $geometry: { type : "Polygon" , coordinates: [[[121.48521363894814,31.41360430073249],[…],[121.48865692654915,31.41168940543709]]] } } } },{loc:1}).toArray(function(err, result){ if […]

将multer文件(nodejs)上传到Mongo数据库

我跟着一个关于如何使用multer在节点js中上传文件的教程,并且只是开始学习节点js,并在不久之前expressionjs,所以我是一个相当初学者。 作为教程的结果,当我点击提交在我的index.ejs上传图像/音乐文件,我可以看到在我的terminal文件已上传的细节,当我检查我的./public/uploads文件夹中,一个文件已经放在那里。 我现在想知道的是,如何获取这些数据并将其放入我的mongo数据库中,如何查看这些图像或在我的index.ejs中播放这些音乐文件? 我还没有设立mongoose,但我会成为。 我的代码到目前为止: 我的app.js var express = require('express'); //to require express.js var multer = require('multer'), //to require multer for uploading photos bodyParser = require('body-parser'), //to require body-parser to grab json form data path = require('path'); var upload = multer({ dest: 'public/uploads/' }) //giving upload a destination directory var app = express(); //to use […]

我正在做这个API把请求纠正与mongoose?

所以我正在使用mongoose和mongodb,并表示路由来做到这一点。 我有一个用户文档的创build“todolist”空数组,我想能够编辑这个任务添加到列表以及编辑这些任务。 现在我正在考虑最好的办法是让服务器检查req.body是否有一些variables来设置我需要编辑的文档的哪一部分。 这是正确的方法,或者我想为这样的事情创build一个新的API路由,或者我通过检查来自客户端的reqvariables,以确定我想要在服务器上编辑正确做到这一点? 还有更干净的方法吗? router.put('/:user_id', function(req, res) { User.findById(req.params.user_id, function(err, user){ if(err){ res.send(err); return err; } if(req.body.createTask) { user.todolist.push({ "task_name": req.body.task_name, "task_importance": req.body.importance, "task_completed": false }) }else if(req.body.edit_task){ if(req.body.edit_task_name) { user.todolist[req.body.index].task_name = req.body.new_task_name; }else if(req.body.edit_task_importance) { user.todolist[req.body.index].task_importance = req.body.new_task_importance; }else if(req.body.edit_task_completed) { user.todolist[req.body.index].task_completed = true; } } user.save(function(err){ if(err) res.send(err); res.json({message: 'User updated'}); }) […]