Tag: mongodb

使用mongoose分页包的模型错误

我试图使用mongoose分页包,并试图按照提供的文档,但它似乎没有与我的模型。 我收到此错误消息: /Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16 BlogPostSchema.paginate({}, 2, 10, function(error, pageCount, paginatedResults ^ TypeError: Object #<Schema> has no method 'paginate' at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/server.js:18:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) 我不知道为什么我收到这个错误,因为插件应该允许分页方法。 blogModel.js: var mongoose = require('mongoose'); var Schema […]

在mongoDB中查询改变string需要很长的时间

我在mongoDB中的整个数据集(大约300万个文档)上运行以下查询,将string的用户标识更改为int。 这个查询似乎并不完整: var cursor = db.play_sessions.find() while (cursor.hasNext()) { var play = cursor.next(); db.play_sessions.update({_id : play._id}, {$set : {user_id : new NumberInt(play.user_id) }}); } 我在同一个数据集上运行这个查询,它会相对快速地返回: db.play_sessions.find().forEach(function(play){ if (play.score && play.user_id && play.user_attempt_no && play.game_id && play.level && play.training_session_id) { print(play.score,",",play.user_id,",",play.user_attempt_no,",",play.game_id,",",play.level,",",parseInt(play.training_session_id).toFixed()); } else if (play.score && play.user_id && play.user_attempt_no && play.game_id && play.level) { print(play.score,",",play.user_id,",",play.user_attempt_no,",",play.game_id,",",play.level); }; […]

快速连接mongoose插件到mongodb

我正在尝试在一个快速项目中使用mongoose自动增量插件,并且由于某种原因我无法连接。 这是在我的app.js文件中看起来像 //dependencies var config = require('./config'), express = require('express'), session = require('express-session'), mongoStore = require('connect-mongo')(session), http = require('http'), path = require('path'), passport = require('passport'), mongoose = require('mongoose'), autoIncrement = require('mongoose-auto-increment'), helmet = require('helmet'); var stripe = require("stripe")("sk_test_nEgbqClEavLcf8zGIj4GtaOy"); //create express app var app = express(); //keep reference to config app.config = config; //setup the web […]

在hapijs中只导入一次插件并在任何地方使用

我应该使用名为hapi-mongoose-db-connector mongoose hapi-mongoose-db-connector的插件进入我的hapijs应用程序。 在存储库页面中,开发人员build议您可以正确导入的方式。 它说下面的方式是坏的方法: # from the server mongoose = server.pack.plugins['hapi-mongoose-db-connector'].mongoose # or from a plugin mongoose = plugin.plugins['hapi-mongoose-db-connector'].mongoose 并阻止使用它。 相反,他build议采取以下方式: 你什么都不做,只需要在你的插件mongoose。 由于npm要求是单身人士(代码只有一次加载,这很好) 但是他没有示例。 在这一点上,我不太确定如何使用它。 我不会在每一个js文件mongoose呼叫。 我会在我的应用程序的某个地方调用它,并在我创build数据库模型的js文件中使用它。 你知道这些情况下的最佳做法吗?

MEAN堆栈组件如何组合在一起?

我相信这是显而易见的,但让我先说,我是一个web开发新手。 我一直在参加Udacity,Coursera和Code Academy课程,以及阅读介绍书籍,但我似乎无法很好地描述Web开发的所有不同技术组件如何配合在一起。 我对MEAN堆栈感兴趣,并计划从第一个应用开始。 我已经阅读了关于每个组件的几个描述,但是它们仍然看起来非常抽象。 我更习惯于在更多的物理领域工作,比如木工和机械,在这里你可以看到所有的东西都融合在一起。 我发现对这个大创意的牢固把握对于学习细节非常有帮助。 任何人都可以提供一个很好的概述每个MEAN组件的function,最好哑到newb级别? 或者更好的是,推荐一个能给出这样一个概述的资源,然后再详细介绍一下?

使用asynchronous批量插入在MongoDb中自动增加字段

我正在看这篇关于在MongoDb中自动递增字段的文章。 http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ 这在理论上看起来不错,但是在我的应用程序中,所有数据库调用都是asynchronous的。 Ps,我使用Mongoskin。 考虑一下: var getNextSequence function (name) { db.counters.findAndModify({_id: 'invoiceNr'}, {}, {$inc: {seq: 1}}, {new: true}, function(err, doc) { if (err) { return next(err); } return doc.seq; }); }; var seq = getNextSequence('invoiceNr'); console.log(seq); 这(Console.log)执行时当然没有任何价值… 这让我想到了嵌套的callback(经典的Node风格): db.counters.findAndModify({_id: 'invoiceNr'}, {}, {$inc: {seq: 1}}, {new: true}, function(err, doc) { if (err) { return next(err); } […]

服务器重新启动后,通过身份validation的用户login

我有一个节点应用程序,每当我编辑/更新.js文件,用户注销。 我正在用express.io使用passport-local 。 另外我使用mongoose和socket.io 。 app.configure(function() { app.use(express.logger('dev')); app.use(express.cookieParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.set('view engine', 'ejs'); app.use(express.session({ key: 'session', secret: '111' })); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); }); 如何让用户永远login? 解决 : NodeJS + Express + Mongo Session存储

转发PassportJS到表单身份validation添加电子邮件,密码等

所以我按照这个教程 。 我完成了整个系列,应用程序工作正常。 不过,我想为使用社交networking注册的用户例如。 Facebook等被redirect到一个单独的表格,他们可以填写他们的名字(S)电子邮件等问题的夫妇。 我将不得不改变数据库模式,以允许“全球”(这是正确的术语来使用?)值的电子邮件和名称等从facebook / twitter特定的东西。 像这样: var userSchema = mongoose.Schema({ email : String, name : String password : String, facebook : { id : String, token : String, }, twitter : { id : String, token : String, displayName : String, username : String, }, google : { id : String, token […]

mongodb同步请求

我完全是新的node.js和mongodb,我有一个关于在同一时间期间发生的多个请求的同步的问题。 我已经阅读了关于这个主题的一些线索,但是我还没有find一个满意的答案呢。 我有以下情况: 我的集合中的文档具有状态属性。 在请求我select基于状态的文档,然后更新状态。 现在的问题是,如果有多个请求在同一时间所有请求将select相同的文档,因为第一个更新还没有写入数据库,但每个请求应该得到一个“自己的文档”来处理。 在这个需求中使用node.js和mongodb是否是一个好主意,还是应该坚持RDBMS的“经典”方法? 我的主要焦点是可伸缩性,这就是为什么我首先select了node.js和mongodb的原因。 我非常感谢你能给我的每一个build议,最好的问候

MongoDB,Mongoose – 将非持久数据字段添加到模式的最佳方式是什么?

我有Mongoose模式,我需要添加一个非持久字段。 这个领域的重点是存储一些与持久数据字段相关的状态,但不需要将其存储到数据库中。 我看到一些Mongoose的替代品提供了这样的function,例如https://github.com/simpleviewinc/mongolayer#modeladdfieldargs ,但是我无法在Mongoose中find类似的function。 任何提示将不胜感激!