Tag: mongodb

Geddy – 运行额外的stream程 – Twitter Stream

我很好奇,如果任何人有任何经验的时候运行Geddy,如果你也可以运行一个额外的资源,如: https : //github.com/AvianFlu/ntwitter 如果你想通过package.json包含上面的内容,并且引用它, var twitter = require('ntwitter'); var twit = new twitter({ consumer_key: 'Twitter', consumer_secret: 'API', access_token_key: 'keys', access_token_secret: 'go here' }); 那么当你运行geddy的时候,它会产生另外一个自己的实例,这个实例可以访问模型等等,用来保存来自twitterstreamapi的推文。 我知道我可以运行它作为节点服务器,然后将结果保存到mongodb,但希望能够开始所有这一切,并保持在geddy。 当谈到Geddy和Node时完成noob。

MongoDB对每个用户的db.collection.distinct()的效率与保存为数据库条目和检索结果

在我的nodeJS应用程序中,我查询特定数据库字段的不同值的mongoDB 。 这将返回大约3000个值的数组。 每个用户都必须为每个会话获取这些数据(因为它是运行应用程序不可或缺的部分)。 我想知道是否更有效(和更快)为每个用户做到这一点: db.collection.distinct({"value"}, function(data){ // save the data in a variable }) 或者我是否应该在服务器端加载不同的值(比如每天一次),然后将其保存为每个用户检索的数据库条目,如下所示: // Server-side: db.collection.distinct({"value"}, function(data){ // save the data to MongoDB as a document }) // Client-side: db.serverInfo.find({name: "uniqueEntries"}, function(data){ // Save to browser as a variable }) 我自己testing过这个,不会注意到很大的区别,但是我是目前唯一使用这个应用程序的人。 一旦我得到10/100/1000 / 10,000用户,我想知道哪里最好用。

Mongoose model.save()不会持久更新数据库

我正在开发一个mongoose / node.js / express应用程序。 在我的路线我使用快速'app.param()方法来获取我的模型实例到请求中 – 而不是在每个控制器操作中获取它。 我得到了show并create在我的控制器工作的行动 – 但是我卡住实施update行动。 这里是我的相关控制器代码: // mymodel-controller.js var mongoose = require('mongoose') var MyModel = mongoose.model('MyModel'); var utils = require('../../lib/utils'); "use strict"; exports.update = function (req, res, next) { var mymodel = req.mymodel; mymodel.set(req.body); mymodel.slug = utils.convertToSlug(req.body.title); mymodel.save(function(err, doc) { if (!err) { console.log('update successful'); // here i see […]

mongo:命令在Mac OSX上找不到,即使它在PATH中

我试图在我的Mac上使用mongodb作为nodeJS应用程序。 我按照这里给出的步骤安装了mongo。 首先,我想知道是否用“nano .profile”或“vim .bash_profile”添加mongodbpath到PATH是相同的? 我习惯使用“nano.profile”,我想知道有什么区别。 然后,我在.profile中添加了mongodb的path,但是当我尝试使用命令“mongo”时,它告诉我“找不到命令”。 虽然,当我手动键入/ usr / local / mongodb / bin / mongo(这是我在.profile中添加的path)时,它工作。 我不明白发生了什么事情,我在互联网上find的唯一解决scheme是修改.profile,但是我对我来说似乎是正确的。 感谢您的帮助。 垫

Async.waterfall,foreach和parsingJSON node.js. 需要一些build议

我的任务是parsing最后100个dota2游戏。 我从jiiin( https://github.com/jiin/dota2api )使用dota 2 API和小型lib, 我所有的,这是一个async.waterfall调用。 喜欢这个: exports.get = function(req, res, next) { var playerID = +req.params.id; var playerCounter = []; var playerInfo = { kills: [], deaths: [], assists: [], last_hits: [], denies: [], hero_damage: [], hero_healing: [], gold_spent: [], kills_number: 0, deaths_number: 0, assists_number: 0 }; async.waterfall([ function getDota2Json(callback) { dota.getByAccountID(playerID, function […]

如何用node.js在平均堆栈中实现node_acl

我想用我的MEAN应用程序来实现ACL。 我有几个关于实施的问题。 如何获得在server.js中实例化的mongodb后端的acl,以便我可以在我的路由器和控制器中使用相同的实例? 创build一个pipe理员可以用来创build和分配angular色并更改权限的acl控制器是否有意义? 我想我的所有资源在我的router.js被暴露为acl资源与相关的行动。 当你将acl.middleware()添加到路由时,会自动发生吗? 我如何定义像“编辑自己的内容”的权限? 以下列出了我为实现ACL提供的方法而允许pipe理员pipe理ACL设置的控制器方法: set_acl(angular色,资源,权限) remove_role(angular色) what_resources(angular色,[权限]) user_roles(userId) allowed_permissions(userId,[resources]) add_user_roles(userId,angular色) remove_user_roles(userId,angular色) 有什么我失踪?

MissingSchemaError为Mongoose的填充方法

我试图工作mongoose的填充,但不断得到这个错误: /node_modules/mongoose/lib/connection.js:625 throw new MongooseError.MissingSchemaError(name); ^ MissingSchemaError: Schema hasn't been registered for model "Users". 我的代码只是基本的填充function的实验。 它看起来像这样: 我定义了模式: var user = mongoose.Schema({ userName: String }); var client = mongoose.Schema({ fk_user: { type: mongoose.Schema.ObjectId, ref: 'Users' }, name: String }); 我创build模型: var UserModel = mongoose.createConnection('localhost','fixDB').model('Users', user); var ClientModel = mongoose.createConnection('localhost','fixDB').model('Clients', client); 我保存了一个实例: var user1 = new UserModel({userName: […]

将图像保存到数据库

我正在Node中构build个人项目,我希望我的用户能够上传“封面”照片。 我现在正在使用的方法是将这些图像保存到我的fs,只需在MongoDB数据库中添加该图像的path。 所以如果用户添加一个图像,我把这个图像添加到我的图像文件夹名称让我说userID.jpg,我保存“/public/images/userID.jpg”作为string在我的数据库。 我有一种感觉,这种方法可能不是最有效的。 我应该直接将它保存到数据库? 有什么优点或缺点?

是否有可能在Express中使特定用户的会话数据无效或删除?

好的,所以对于我的高级devise项目,我正在和一个Node.JS / Express应用程序的团队一起工作,参加SGA学生志愿者项目。 我们正在Express中使用MongoDB进行持久性会话存储。 当用户login时,他们的文档被复制到他们的会话存储中。 任何时候用户数据都被修改,它被写入MongoDB数据库。 如果数据库更新成功,用户会话将更新为数据库中的新文档。 每次请求用户数据时,都会从会话存储中读取数据。 只要会话每次在数据库中成功修改用户数据时都保持更新,就可以工作。 它还使我们避免每次使用某些用户数据渲染视图时都必须从数据库读取数据。 我们有不同types的用户。 我们有学生volunteer型用户,不同级别的staff型用户。 我不认为我们的会话/数据库组合会有问题,直到我的合作伙伴实现了顶级stafftypes用户的function。 他们有能力修改学生volunteer用户的数据。 在写入数据库时​​这不是问题,我们只是将修改的数据写入志愿者文档。 问题出在这样的事实,据我所知,我们没有办法根据stafftypes用户的请求来更新/无效/删除volunteer用户的会话来修改它。 基本上,如果一个staff用户修改一个volunteer用户的数据,而这个volunteer用户没有签名,那么一切工作正常,将会进行修改,数据库中的volunteer文件将被修改。 当志愿者签署这个修改后的数据将从数据库中读取并存储在用户的会话中。 但是,如果staff用户修改了volunteer用户的数据,并且volunteer用户login,则可能会出现问题。 数据库中的volunteer文档将被更新,但是volunteer用户的会话将不会被更新,直到会话结束并且用户再次login从而使他们的文档被从数据库读入到他们的新会话中,或者直到volunteer用户修改他们的数据,使他们的会话更新来自数据库的新数据(这种可能性可能会或可能不会覆盖staff用户所做的改变)。 毋庸置疑,如果不加以解决,这可能会导致不一致。 有没有人有任何build议,我可以如何处理这个。 如果我们要允许一个用户更新另一个用户的数据,是否可以按照计划使用会话存储? 是否有可能使特定用户的会话无效/删除以响应不同的特定用户的请求? 或者可能修改特定用户的会话以响应不同的特定用户的请求? 编辑:不知道这是如何脱离主题,也许有点过于专注,可能没有“最小的理解”,我会尝试纠正,增加一些更多的澄清我的问题: function updateUserDocument(req, res, id, callback) { var data = req.body; var query = { _id: id }; var cmd = { $set: { role: 'volunteer', volunteer: data } }; […]

mongodb articles.length未定义

我正在用jade构build一个nodejs,express,mongodb博客。 我的文件夹结构是:project / modules / views / index.jade app.js articleprovider-memory.js articleprovider-mongodb.js 当我通过控制台运行节点app.js并转到localhost端口时,我得到TypeError: 无法读取jade.debug.unshift.lineno未定义的属性“长度”… 在浏览器中。 可能是指一个匿名函数。 这里是Articleprovider-memory.js ArticleProvider.prototype.save = function(articles, callback) { var article = null; if( typeof(articles.length)=="undefined") articles = [articles]; for( var i =0;i< articles.length;i++ ) { article = articles[i]; article._id = articleCounter++; article.created_at = new Date(); this.dummyData[this.dummyData.length]= article; } callback(null, articles); }; /* Lets […]