Tag: mongodb

mongoose设置默认数组大小和值

我试图在我的mongoose模式中设置一个默认的数组大小和值,但是返回总是以[]出现,除非文档实际上有数据。 "transform": { type: [ Number ], default: [0, 0, 0] } 返回值是: "transform":[] 如何configuration我的模式,以便它返回: "transform":[0,0,0] 答 : required: true设置required: true将数据添加到创build的任何新文档。 旧文件不会被更新,但是。 "transform": { type: [ Number ], default: [0, 0, 0], required: true } 更新为了快速解决我的数据问题,我在Mongo上运行了一个更新,使用以下行升级所有现有的文档。 db.getCollection('objects').updateMany( { "properties.transform": []}, { $set: { "properties.transform" : [0,0,0] }} ); 注意:我的变换字段是属性的子元素,因此"properties.transform"

无法启动mongo db

我已经做了mongodb安装过程中提到的链接https://docs.mongodb.com/manual/installation/但我不能启动MongoDB这是我的日志请告诉我可能的方式来启动MongoDB C:\>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" 2017-03-12T12:42:55.378+0530 I CONTROL [initandlisten] MongoDB starting : pid=5 400 port=27017 dbpath=C:\data\db\ 64-bit host=vimals 2017-03-12T12:42:55.379+0530 I CONTROL [initandlisten] targetMinOS: Windows 7/W indows Server 2008 R2 2017-03-12T12:42:55.380+0530 I CONTROL [initandlisten] db version v3.4.2 2017-03-12T12:42:55.381+0530 I CONTROL [initandlisten] git version: 3f76e40c105 fc223b3e5aac3e20dcd026b83b38b 2017-03-12T12:42:55.382+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1u-fips 22 Sep 2016 2017-03-12T12:42:55.382+0530 I […]

有可能将现有的应用程序部署到Docker

我有现有的MEAN堆栈应用程序。 我find了更多的教程,但是我找不到任何有关将现有应用程序部署到Docker的信息。 这可能吗?

连接到mongo容器使用节点获取MongoError

出于某种原因,我无法使用其他本主题上的stackoverflowpost工作。 我得到: MongoError: failed to connect to server [localhost:27017] on first connect 。 我开始了我的docker集装箱,并检查mongo是否工作: $ docker run –name my-mongo -d mongo $ docker exec -it my-mongo bash # mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 Server has startup warnings: 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] ** WARNING: Using […]

这个错误是什么意思:Falsy值为收件人键'registrationTokens'

我得到这个错误:使用gcm推送通知时收件人键'registrationTokens'的Falsy值。 下面你可以find我的代码: Device.find({ user: { $in: users }}, function (err, devices) { if (err) { logger.error('500 ' + err) return res.status(500).json({ code: config.errorCode.status500.code, message: config.errorCode.status500.message }) } var androidRegTokens = [] var iOSReqTokens = [] for (var i = 0; i < devices.length; i++) { if (devices[i].platform == 'Android') { androidRegTokens.push(devices[i].deviceToken) } else { iOSReqTokens.push(devices[i].deviceToken) […]

asynchronous:服务器启动后连接到MongoDB

我很想知道关于Node.jsasynchronous和MongoDB的一些事情。 如果服务器在我连接之前启动,并且我的模板或Ajax依赖于来自数据库的数据将服务(我预编译我的句柄)HTML文件失败或将我的模板/ Ajax等待连接,然后继续? 如果它的工作,我想更好地了解它是如何工作的! 如果失败了,我该如何“优雅地修复”呢? 这是一个解决scheme的例子,使用提升(对我来说似乎很糟糕): //connect to db mongodb.connect("someDBplace", (err, db)=>{ if(err){ return generalLogger.error(`The database has failed to connect: ${err}.`); }else{ //start the server now: generalLogger.info(`Connected to database: ${stringify(db.databaseName)}.`); server.listen(`${port}`, (err)=>{ if(err){ generalLogger.error(err); } //for demo: console th eMIMEtype generalLogger.info(`The Server started on port: ${port}.`); }); } });

使用node.js通过模板pug从mongodb获取数据

目前我有一个提取数据的问题。 我想从数据库中获取数据并使用pug模板打印这里是我的index.js中从代码中获取数据并将其放入数组的代码。 //Printing a lesson router.get('/getLesson', function(req,res, next){ var resultArray = []; mongo.connect(url, function(err, db){ assert.equal(null,err); var cursor = db.collection('lesson-data').find(); cursor.forEach(function(doc, err){ assert.equal(null, err); resultArray.push(doc); }, function(){ db.close(); res.render('lessons', {item: resultArray}); }); }); }); //Inserting a lesson router.post('/lessonInsert', function(req,res,next){ var lesson = { topic: req.body.topic, description: req.body.description, language: req.body.language, level: req.body.level }; mongo.connect(url,function(err, db){ assert.equal(null,err); […]

如何通过mongoose中的单个键迭代多个值

我有一个使用MongoDB作为数据库的Web应用程序,我试图迭代通过一个单一的属性,护照内的多个值。 这是我的模式: var EmployeeDBSchema = new Schema({ /* Passport tab schema */ passportInfo: { passportDetails: [] }, 这就是Robomongo的外观: 我试着检查,如果这可以作为一个数组检索,所以我做了下面: console.log(_.map(results, _.property('passportInfo'))); passportArr = _.map(results, _.property('passportInfo')); console.log("is passport array? " + _.isArray(passportArr)); 结果: 现在,因为它是积极的,我试着迭代通过它像一个正常的数组使用ff。 码: _.forEach(passportArr, function (value, key) { _.forEach(passportArr[key], function(value2, key2){ console.log(key2 + " >> " + value2); }); }); 但是,我得到的是这样的: 我怎样才能得到passportExpiry,passportNumber和countryOfOrigin的值? 我真的很难过这个。 希望有人能帮助。 […]

mongoose:find具有特定条件的文件

我正在编写一个新闻网站。 我为特定的作者/记者做了一个专门的页面。 此页面将包含他/她的所有post。这里是代码: 在app.js中, app.get("/author/:id", function(req,res) { //latest contains all posts Latest.find({author:"Richard Mann"}).sort([['_id', -1]]).exec(function(err,allLatest) { if(err) { console.log(err); } else { res.render("showAuthor", { latest : allLatest}); } }) }) 此代码正常工作,并显示特定作者的post。 但是,如何为所有作者做到这一点(同时避免DRY代码)? 在find指定作者的文档时,我应该申请什么条件?

mongoose填充多个文件不起作用?

以下是我的模特。 我想从碎片集合中填充数据到我的stream中。 stream: var mongoose = require("mongoose"); var mongoosePaginate = require('mongoose-paginate'); var Schema = mongoose.Schema; // Declare schema var streamSchema = Schema({ user_id: { type: String, required: true }, public_key: { type: String }, private_key: { type: String }, title: { type: String, required: true }, description: { type: String, required: true }, particle: [{ […]