Articles of mongodb

访问MongoDB属性不能按预期方式工作

这是我的模式 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var messageSchema = new Schema({ status: {type: String, default: 'Pending'}, latestUpdate: Date, createdAt: {type: Date, default: Date.now} }); module.exports = mongoose.model('Requests', messageSchema); 这是我如何打印到控制台的属性: hosSchemaModel.find(function(err, hosSchema) { if (err) { console.log('inside error') // return res.send(err); } else { console.log(hosSchema) } }); 在上面的代码中, console.log(hosSchema)打印下列内容: console.log()的结果 当我尝试访问hosSchema.status , undefined被打印到terminal。 […]

我可以连接到部署在应用程序引擎上的从本地主机部署mongoDB的谷歌云,但不能从同一个应用程序

我的应用程序是使用Mongoose为数据库编写的React和Express。 我在Google计算引擎上部署了一个bitnami mongoDB实例。 现在我试图在App引擎上部署服务器。 当我在本地运行我的应用程序,它可以很好地连接到数据库(我可以添加的东西,看看它)。 但是,当我做一个npm开始在谷歌云壳得到这个错误: 'failed to connect to server [35.196.182.249:27017] on first connect [MongoError: connection 0 to 35.196.182.249:27017 timed out]' } (node:1310) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: failed to connect to server [35.196.182.249:27017] on first connect [MongoError: connection 0 to 35.196.182.249:27017 timed out] 这是我的代码连接: mongoose.connect(process.env.MONGODB_URI,{ useMongoClient: true }).catch(function(err){ console.log(err) }); […]

从CSV导入到MongoDB的嵌套元素

我有以下的CSV文件: Website Company name City State Zip Country Founded year Company email Twitter Followers Employees Revenue Public/Private/Nonprofit Industry Monthly Technology Spend First name Last name Title Email Confidence Phone website.com Some Company Sydney NSW 2010 Australia 2012 support@company.com 94750 100 – 250 $1 – 10M Private Design $5K – 20K Fred Smith Mixing Technology and […]

Mongodb查找()使用节点不返回所有文件(奇怪的行为)

我使用meteor与节点来检索从mLab上托pipe的MongoDB集合中的车辆列表。 我最近注意到,我的js应用程序中的find()没有返回集合中的所有匹配文档。 使用Mongo shell和mLab上的search都会返回正确数目的结果。 以下是集合中的示例文档,应该是这样的: { "_id": "VIN", "updatedOn": "Fri Aug 11 2017 11:27:40 GMT-0400 (EDT)", "clientId": "1001", "crushVersion": "v.3.42", "yardName": "YARD NAME", "yardCity": "CITY", "yardState": "STATE", "stockNumber": "STK123447", "iStatus": "0", "location": "YARD", "year": "2003", "make": "AUDI", "model": "A6", "vehicleRow": "32", "yardDate": "2017-08-10T18:09:38.363", "batchNumber": "STK123447", "lastUpdate": "08/11/2017 01:31:31 AM", "color": "SILVER", "vin": "VIN", "reference": "", […]

使用mongoose将embedded文档的多个实例保存到我的模型中

我试图在我的模型中保存embedded式文档的多个实例,我期待每当我填写我的表单数据时,embedded式文档的一个新实例被创build并推送到一个数组中。 这是我的预测模式。 const mongoose = require('mongoose'); mongoose.Promise = global.Promise; const slug = require('slugs'); const teamSchema = new mongoose.Schema({ team1: { type: String }, team2: { type: String }, prediction:{ type: String } }); const predictionSchema = new mongoose.Schema({ author:{ type: String }, team: [ teamSchema ] }); module.exports = mongoose.model('Prediction', predictionSchema); 这是我的控制器 const mongoose = […]

Mongoosevalidation架构没有模型

我想在对应于较大模式的模型上发布该对象之前,针对作为较大模式的成员的模式来validation对象的一些内部元素。 有人已经问过这个问题, 这个答案在第二个选项上有类似的地方: var p = new People({ name: 'you', age: 3 }); p.validate(function(err) { if (err) console.log(err); else console.log('pass validate'); }); 问题是,在进行validation之前,必须使用var People = mongoose.model('People', peopleSchema);创build一个新模型var People = mongoose.model('People', peopleSchema); 。 这是否意味着在这种情况下,新的集合'People'将被存储在MongoDB数据库中? 是叫mongoose.model('People', peopleSchema); 以任何方式改变数据库? 如果是这样,有没有办法做到这一点,而不是创build一个新的集合,在这种情况下, 'People' ? 我想要validation的模式将作为另一个文档的一个组件存储在数据库中,我不想用未使用的集合来污染数据库。

在Nodejs中实现unit testing – 意外的失败

无法执行unit testing 问题是testing没有通过,尽pipe当我执行testing时请求和响应数据被添加到数据库。 请提出一些方法来通过这个testing。 预期的状态码200没有在这个testing中发生。 集成testing正在对我的应用程序工作,但我无法debugging此unit testing错误。 //testfile var db = require('../mongodb'), mongoose = require('mongoose'), posts = require('../api/addTodo'), should = require('should'), testUtils = require('./utils'); describe("Add Api", function () { var dummyPost, id; before(function (done) { mongoose.connect('mongodb://localhost:27017/todosdb_test', function() { console.log('Connected To:'+'mongodb://localhost:27017/todosdb_test'); done(); }); dummyPost = new db.Todos({ 'admin': 'Dumm_admin', 'text': 'Dummy', 'completed': true }); dummyPost.save(function (err, […]

如何删除mongoose模式中的根数组?

在我的mongodb数据库中,当我做一个获取请求来接收所有的项目,它与这个响应,但有一个数组,我不想在那里。 这是回应: [{"_id":"598f43ab610a4b3540481615","__v":0,"data":[{"name":"Test","ip":"1","port":7777,"_id":"598f43ab610a4b3540481616","online":true}]}] 第一个数组在[]覆盖响应没有名称,我不知道如何删除它。

嵌套的对象数组

这是我的mongodb模式。 var Schema = mongoose.Schema; var UserSchema = new Schema({ created: { type: Date, Default: Date.now() }, name: { type: String, default: "", // required: "Title Cannot Be Blank", trim: true }, email: { type: String, default: "", // required: "Content is required", trim: true }, rooms: [ { roomId: "string", roomName: "String", pic: "string", […]

Node.js / Mongoose:发送信息到一个函数,并识别信息来操作

我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理收到的对象信息,并使用mongoose的模型发送信息不同的Mongo集合(每个API REST一个)。 我的目标是在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作。 下面是一个包含两个具体对象的例子,它们被检索并发送到数据库: Object1: { "name": "X", "a": 10, "b": 9, "n": 1502642712481, "iname": "ix", "_id": "59907f34040eb562d8d11d8c" } 对象2: { "name": "Y", "n": 1502642712552, "iname": "ix", "_id": "59907f34040eb562d8d11d8d", "b": "10", "a": "9", } 这些都有自己的模型,并正确插入到MongoDB保存,我想比较每个对象的“a”和“b”键(FYI: "iname"是一个共同的关键对象和"n"是在请求被返回时创build的时间戳)。 我想对'a'和'b'做的操作types是相对基础的math(目前): ax – ay和bx -by 任何想法,我怎么能做到这一点? 现在将每个对象保存到数据库的代码嵌套在一个无限循环中,如下所示: async function loopY() { setTimeout( async function () { var list […]