Articles of mongoose

Node.js等到asynchronous函数完成,然后继续执行其余的代码

在我的代码中,我有2个for循环执行一个asynchronous函数(在两个循环中它是相同的函数),但是在这两个循环之后的代码必须等到执行它们之后才运行。 这是我的代码: for(var a = 0; a < videoIds.length; a++){ if(videoIds){ findVideo(videoIds[a], function(thumbnailPath, videoName){ // findVideo is the async function // it returns 2 values, thumbnailPath and videoName videoNames[a] = videoName; // and then these 2 values are written in the arrays thumbnaildPaths[a] = thumbnailPath; console.log('1'); }); } } // then the above code runs […]

Mongoose查询返回undefined

我试图简单地通过另一个函数返回查询的结果。 在下面的例子中,当我调用gameInit时 ,我需要从DB中获取一个随机单词。 grabWord函数工作正常,我可以在该函数内logging结果。 这是传递给gameInit这是问题。 我知道我需要使用callback,但已经失败了一堆,所以我在这里! module.exports = { gameInit: function(){ var theWord = module.exports.grabWord(); console.log(theWord); //returns undefined }, grabWord: function () { Word.find({}, function (err, docs){ rand = Math.floor((Math.random() * docs[0].words.length)); myWord = docs[0].words[rand].word; return (myWord); console.log(myWord); // works }); } }

如何用子文档数组更新MongoDB文档

我正在使用一个MongoDB数据库,这个数据库的集合模型类 , 学生 , 主题和学术performance 。 下面是基于Mongoose的模式和模型: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectId = Schema.Types.ObjectId; // SUBJECT collection var subjectSchema = new Schema({ name : { type: String, required: true }, category : { type: String, required: true } }); var Subject = mongoose.model('Subject', subjectSchema); // STUDENT collection var studentSchema = […]

如何在我的Node.js代理中返回JSON?

我不得不将请求代理到Dota 2 API。 经过一番研究,我find了一种方法,在使用MEAN堆栈构build的API中完成它。 但是,我不知道如何从请求中返回数据。 这是我的节点服务器代码中的路线: router.get('/api/allheros', function (req, res) { Https.get('https://api.steampowered.com/IEconDOTA2_570/GetHeroes/v0001/?key=FB900D42DC33F4B4FCC62F6C7779BE5D', function (res) { var str = ''; console.log('Response is ' + res.statusCode); res.on('data', function (chunk) { str += chunk; }); res.on('end', function () { console.log(str); //This console logs all the heros correctly }); }); }); 控制台日志工作,但我需要数据返回到前端。

为什么我的Mongoose查询不更新MongoDB数据库中的嵌套数组中的值?

我试图用几种方式来实现这一点,而且似乎没有任何工作。 我需要做的只是将特定Notifications对象(由其_idfind)的Status值从0更改为1 。 示例JSON: { "_id": "577fbf0c7c6e88600ede5e73", "updatedAt": "2016-07-14T11:27:18.670Z", "createdAt": "2016-07-08T14:56:12.013Z", "Name": "Name", "Email": "test@test.com", "Notifications": [ { "_id": "5787644108edec801e9cd0ab", "Title": "They commented on This", "Type": 1, "Status": 0, "TeamID": "578357109bb105602b1cba27", "DraftID": "578357b89bb105602b1cba2a" }, { "_id": "578777167d1f3424251c361f", "Title": "He commented on That", "Type": 1, "Status": 0, "TeamID": "578357109bb105602b1cba27", "DraftID": "578357b89bb105602b1cba2a" } ] ….. } 我的路线: […]

递增不起作用

我无法获得numNotes增量。 一切似乎工作得很好。 function getNotes(done) { noteSchema.find({}).exec((err, notes) => { var numNotes = 0; async.each(notes, (n, next) => { userSchema.findById(n.userId, (err, user) => { if (err || !user) { next(); return; } var emailsStr = utils.getEmailsString(user.emails); if (!utils.toSkipEmail(emailsStr)) { meetingSchema.findById(n.meetingId, function (err, meeting) { if (meeting.name.displayValue.indexOf('test', 'Test') == -1) { numNotes++; } }); } next(); }) […]

你能用Mongoose中的实例方法search其他模型吗?

模型什么时候收到他们的原型? 我知道embedded通常是这里的答案,但我有一个特例。 如果我调用实例的自定义方法中的另一个模型,它似乎失败。 我得到的错误: Fish.find is not a function at model.UserSchema.methods.fishes 鱼模型被制成一个模型: // Require mongoose to create a model. var mongoose = require('mongoose'), User = require('./user.js'); // Create a schema of your model var fishSchema = new mongoose.Schema({ name: String, category: String, user: { type: mongoose.Schema.Types.ObjectId, ref:'User' } }); // Create the model using your […]

Mongodb一段时间

我想对MongoDB / mongoose有一些帮助,因为我有点卡在这里。 我正在做一个员工时间logging与MEAN堆栈的Web应用程序,我不知道如何创build每两个星期在Mongodb /mongoose。 例如,开始date:4.7,结束date:17.7,当前date变为18.7时,将创build新的文档,开始date为18.7,结束date为31.7等。 我的模式目前如下(我将在稍后添加更多信息): var payPeriodSchema = new Schema ({ hoursInPayPeriod: { type: Number, default: 0, required: true }, payPeriodStartDate: { type: Date, required: true }, payPeriodEndDate: { type: Date, required: true }, isPaid: { type: Boolean, default: false, required: true } }, { timestamps: true });

显示“db.get不是函数”NodeJs,MongoDB

制作一个投票应用程序,其中包括以下两个模型的用户和民意测验,数据库由两个收集用户和民意调查组成。 user.js的 'use strict'; var mongoose = require('mongoose'); var Schema = mongoose.Schema; var User = new Schema({ github: { id: String, displayName: String, username: String, publicRepos: Number }, nbrClicks: { clicks: Number } }); module.exports = mongoose.model('User', User); Poll.js 'use strict'; var mongoose = require('mongoose'); var Schema = mongoose.Schema; var Poll = new mongoose.Schema({ title: […]

我将如何使用mongoose创build和更新时间序列?

我想按照这个模式devise,因为它似乎很好,虽然出: http : //blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb 理想情况下,我想logging一秒钟捕获数据的文件,就像在他们早期的例子中一样。 我遇到了三个不同的障碍: 1)我不太清楚架构应该如何看 – 目前我有这样的东西: var mySchema = new mongoose.Schema({ timestamp_minute: String, type: String, values: [ Number ] }); 2) “值”数组的长度应该是60(一分钟内存储我们的一秒数据间隔数据点)。 我将如何去预先填充0这个数组? 3)我如何去更新这个数组。 我想在我的Node.js,因为我得到频繁和一致的更新第二,我可以只使用获得增量的索引,然后重置59.有没有办法使用这个索引时尝试访问“值”例如使用mongoose更新和'$ set:{'values'。 + index:myValue}'?