Tag: mongodb

具有相同callback函数的多个请求asynchronous

var parsedUrl = req.body.parsedUrl; console.log(parsedUrl); var options = { url: 'https://api.github.com/repos/' + parsedUrl, headers: { 'User-Agent': 'request' } }; var options2 = { url: 'https://api.github.com/repos/' + parsedUrl + '/readme', headers: { 'User-Agent': 'request' } }; function callback(error, response, body) { if (!error && response.statusCode == 200) { var info = JSON.parse(body); Thing.create(info, function(err, thing) { […]

在mongodb中制作或模拟连接

我想用mongoose在mongodb中模拟连接查询。 没有嵌套数据,只有两个Schema,其中OrderSchema:_id引用了DetailSchema:orderId 得到所有订单然后逐一查询每个细节是一个糟糕的解决scheme。 我曾尝试使用mongoose填充,但只有如果我改变了计划,这是不可能的。 我简直想不出干干净净的做法! var OrderSchema = mongoose.Schema({ _id: Number, customerId: String, employeeId: Number, orderDate: String, requiredDate: String, shippedDate: String, shipVia: String, freight: Number, shipName: }); exports.OrderModel = mongoose.model('orders', OrderSchema); var DetailsSchema = mongoose.Schema({ orderId: Number, productId: quantity: Number, discount: Number });

mongoose查询与哪里

我有一个mongoose查询,发现用户得到,但尚未赎回的所有奖励。 Reward.find({user: user, redeemed: false}).exec(callback) 我想把它变成所有没有赎回的报酬,以及今天所赎回的报酬。 这是正确的路要走。 Reward.find({user:user}) .where('redeemed').equals('false') .where('redeemed').equals('true').gt(yesterday) .exec(callback)

select顶部对于每个州

我在mongoDB上工作,我有一个这个结构的集合: { "_id" : 1, "State": "Vermont", "Temperature" : 20, "Day" : 1 } { "_id" : 2, "State": "Vermont", "Temperature" : 50, "Day" : 2 } { "_id" : 1, "State": "Vermont", "Temperature" : 40, "Day" : 2 } { "_id" : 4, "State": "Texas", "Temperature" : 20, "Day" : 1 } { "_id" […]

如何从现有模型创build新的Sails模型

我是Sails的新手,并创build一个简单的应用程序。 我现在坚持使用数据模型。 User模型如下: module.exports = { attributes: { firstName: { type: 'string' }, lastName: { type: 'string' }, email: { type: 'email', required: true }, password: { type: 'String' }, passwordSalt: { type: 'String' }, projects:{ collection: 'ProjectMember', via: 'userId' } } }; 我需要一个名为TinyUser模型,它从用户(如外键到用户)获取一些属性,以便我可以访问TinyUser而不是直接访问User 。 TinyUser模型如下: module.exports = { tableName: 'User', attributes: { firstName:{ type: […]

devise模式与规则引擎和node.js来处理权限

我有要求使用规则引擎在系统中实现angular色权限(这可能是一个矫枉过正?)但是权限是一种复杂和复杂的本身。 我很困惑如何授予访问权限或不使用规则引擎。 我也怀疑我应该用什么样的devise来实现它的可扩展性和可维护性。 所以在devise中的任何帮助或向我解释如何使用规则引擎将是伟大的。 使用nools ,mongoDB,node.js作为后端。 我在创build一个封装Nools的规则引擎实例(可能是一个反模式的内部平台可能?)在我的node.js应用程序的引导,并让它作为一个全局variables。 就像是: 'use strict'; var nools = require('nools'); var flows = require('./rule-engine.flows'); // A flow is a container of rules, so each flow could be a category of rules // In the same flow could have some more specific subcategories would be actionGroups? // I'm creating a ruleEngine instance […]

我试图填充一些用户信息到文章查询

Mongo Populate 我试图填充一些用户信息到文章查询 exports.articleByID = function(req, res, next, id) { Article.findById(id).populate('user', 'displayName', 'email').exec(function(err, article) { if (err) return next(err); if (!article) return next(new Error('Failed to load article ' + id)); req.article = article; next(); }); }; 我得到错误 MissingSchemaError:架构尚未注册模型“电子邮件”。 有任何想法吗?? 这是架构 'use strict'; /** * Module dependencies. */ var mongoose = require('mongoose'), Schema = mongoose.Schema; /** […]

覆盖以前的文件的合成索引

我想创build一个模型MongoDb使用mongoose,我想确保只有一个文件存在一个特定的用户和文件。 var FileStatusSchema = new mongoose.Schema ({ file: mongoose.Schema.Types.ObjectId, user: mongoose.Schema.Types.ObjectId, hasSeen: { type: Boolean, default: false } }) FileStatusSchema.index = ({file: 1, user: 1}, {unique: true}) 现在,如果我尝试使用已存在的文件和用户的组合保存文档,则会引发重复的键错误。 有什么办法可以configurationMongoDB覆盖文档,而不是引发exception?

async.each嵌套在async.waterfall中

我最近开始使用asynchronousAPI。 现在我的要求是在3个集合即字段,脚本和语句上执行连接。 字段可以有多个脚本,脚本可以有多个语句。 这是我迄今为止所尝试的:(用脚本joinFields集合) // Array to hold async tasks var asyncTasks = []; async.waterfall([ function(callback){ // fetches fields based on some Id and it returns 2 fields db.fields.find({entity_id: mongojs.ObjectId("54440a448bbbcbb4070131ab")}, function (err, fields) { console.log(JSON.stringify(fields, null, 2)); callback(null, fields); }) }, function(arg1, callback){ // arg1 now equals fields arg1.forEach(function(eachField){ asyncTasks.push(function(callback){ db.scripts.find({fieldId: eachField._id.valueOf()}, function(err, scripts) { […]

Node.js连接到一个mongodb

我一直在关注这个教程 ,试图让mongodb node.js,express和jade一起工作,但是我不能让我的程序从数据库访问任何信息。 这里是应该访问数据库的app.js中的代码。 var mongo = require('mongodb'); var monk = require('monk'); var db = monk('localhost:27017/nodetest1'); ….a few lines down…. app.use(function(req,res,next){ req.db = db; next(); }); 这里是处理路由的代码: /* GET Userlist page. */ router.get('/userlist', function(req, res) { var db = req.db; var collection = db.get('usercollection'); collection.find({},{},function(e,docs){ res.render('userlist', { "userlist" : docs }); }); }); 这里是userlist.jade中的代码:它被devise为纯粹地弄清楚用户列表的内容是什么。 它应该包含数据库中的信息(其中有3个条目,每个数据有2个数据)。 […]