Tag: mongodb

pipe理员能够将社交媒体链接到用户的帐户

我面临着目前的困境。 我的申请stream程如下: pipe理员login 必须select一个客户列表 然后加载所选的客户端数据 现在,pipe理员可以通过点击一个button,将Facebook链接到该客户端的账户。 这同样适用于用户拥有的其他社交媒体帐户。 该 原因很重要的是,应用程序然后从中提取数据 他们的社交媒体,如Facebook Insights。 有什么办法可以实现吗? 我想也许Auth0,但我看了他们的文档,似乎我可以做到这一点,但只有pipe理员是一个链接自己的社交媒体帐户到他的帐户。 无法真正看到他可以将其他帐户连接到当前所选客户帐户的方式。 我正在使用React-Redux,Express和MongoDB应用程序。 即使是在直接的方向推动将不胜感激。

Nodejs – 从MongoDB中检查空对象并parsing它

我试图从NodeJS(使用ExpressJS)和MongoDB实现一个简单的login机制。 我使用MongoJS的数据库连接。 我正在使用$and:来查看集合内的字段是否匹配。 function authenticate(req,res){ username = req.body.username; password = req.body.password; db.users.find({$and :[{username:username},{password:password}]},function(err,doc){ if(( Object.keys(doc).length === 0 && doc.constructor === Object) === false){ res.send("Invalid login") } else { doc.forEach(function(doc){ console.log(doc.firstname) }) } }) } 我检查如果文档contanis空对象(这意味着用户名和密码不匹配),并告诉页面显示login无效。 如果文档确实包含匹配的用户名和密码,则使用console.log()命名用户的名字。 上面的代码不工作…我做错了什么? 提前致谢…

mongoose查询需要填充的数据

我有一个很简单的Mongoose模型: aclSchema = mongoose.Schema({ _id: String, public_read: Boolean, public_write: Boolean, }); aclModel = mongoose.model('acl', aclSchema); 另一个引用它的模型: thingSchema = mongoose.Schema({ _id: String, _acl: { type: String, ref: 'acl' } }); thingModel = mongoose.model('thing', thingSchema); 我需要能够find文件(thingModel)_acl.public_read是真实的。 我遇到的问题是,因为thing._acl是ref,所以直到查询完成后才填充它。 例: thingModel.find({"_acl.public_read":true}).populate('_acl').exec(callback); 这不会返回任何结果,因为,我猜,_acl是一个ref,它不会填充,直到查找返回文档之后。 只是一个侧面说明,模式比这更复杂,其他的参考文件可能是循环的。 为了简单起见,我没有把它们包括在内,但是基本的想法就在那里。 如果这真的很简单,我会使用子文件,它会按预期工作。 有没有更好的方法来做到这一点,所以我得到预期的文件?

在MongoDB中查找非典型限制的文档

我有一个问题,但不知道如何解决它。 我在MongoDB中有PointValues集合。 PointValue模式有3个参数: dataPoint(参考DataPoint模式) 价值( Number ) 时间( Date ) 每个小时有一个点值 (每天24个)。 我有API方法来获取PointValues指定的DataPoint和时间范围。 问题是我需要限制它最多1000点。 典型的极限(1000)方法是不好的方法,因为我需要整点,指定的时间范围,时间步长取决于指定的时间范围和点数值。 所以…例如: 申请数据为1年= 1 * 365 * 24 = 8760它应该返回1000个值,但大约每个值(24 /(1000/365))= 9小时 我不知道我应该用什么方法来过滤MongoDB中的数据。 感谢帮助。

参考多个文件Mongoose

我试图用mongoose连接3个不同的文件(主要是学习如何使用它),我已经build立了3个不同的模式,如下所示: (所有这些都在自己的文件中) const Books = new Schema({ title: { type: String, required: true, unique: true }, description: String, author: { type: mongoose.Schema.Types.ObjectId, ref: 'Authors' }, stores: [{ available: Number, store: { type: mongoose.Schema.Types.ObjectId, ref: 'Stores' } }] }); exports.Books = mongoose.model('Books', Books); const Authors = new Schema({ name: { type: String, required: true }, description: […]

单个或多个连接到MongoDB更好?

我正在通过Express构build我的Node.js应用程序。 我有两个select来编写代码,以连接到我的MongoDB。 首先是每次执行查询时打开一个连接 https://codeshare.io/a3AQXg 其次是启动应用程序时创build一个单一的连接 https://codeshare.io/GkmR14 然后 function productRepository(db) { this.db = db; }; productRepository.prototype.insert = function(item) { return new Promise((resolve, reject) => { this.db.collection('product').insertOne(item, function(err, result) { if (err) { reject(err); } else { resolve(result); } }); }); }; module.exports = productRepository; 和 module.exports = function(app, db) { var productRepository = require('../model/product'); var productRepoInstance […]

泊坞窗应用程序和数据库在不同的容器

我有一个节点应用程序运行在一个docker集装箱,另一个是mongo数据库,第三个是redis数据库。 在开发中,我想要使用这三个容器(不污染我的系统与数据库安装),但在生产中,我想在本地安装数据库和泊坞窗应用程序。 该应用程序假定数据库正在本地主机上运行。 我知道我可以转发端口从容器到主机,但我可以转发容器之间的端口,使应用程序可以访问数据库? 端口转发不同容器上的相同端口会造成冲突。 我也知道容器将在相同的桥接networking,并使用“curl”命令,我发现他们已经连接,我可以访问他们使用他们的相对IP地址。 但是,我希望能够在不改变代码中的“localhost”规范的情况下使这个项目工作。 有没有办法转发这些端口? 也许在我的应用程序的dockerfile中使用iptables? 我希望我的应用程序的容器能够使用“localhost:27017”访问mongoDB,例如,即使它们在不同的容器中。 我正在使用Docker for Mac(V 1.13.1)。 在生产中,我们将在Ubuntu服务器上使用Docker。 我有点小菜。 感谢您的帮助。

mongoose无效的运营商$匹配

我将根据email_address,firstname,lastname,type和phone_number来处理用户search。 电话号码search将精确search与国家代码,而其他人将包含&区分大小写的search。 所以,我写了下面的代码。 User.aggregate( [ { "$redact": { "$cond": [ { "$and": [ { "$match": { type: req.body.type, email_address: new RegExp((req.body.email_address || req.body.any || '').toLowerCase(), "i"), "firstname": new RegExp((req.body.firstname || req.body.any || '').toLowerCase(), "i") , "lastname": new RegExp((req.body.lastname || req.body.any || '').toLowerCase(), "i") } }, { "$or": [ { "$setIsSubset": [ [ { "$substr": [ […]

如何在NodeJS Express路由器res.render中传递Mongoose返回variables?

我已经设置了一个基本的Express NodeJS服务器。 我想将从mongoose.find()返回的设置值保存为res.render作为variables,但是每次都抛出一个错误, Cannot read property of undefined 。 这是我的routes.js文件。 var Setting = require('../../models/setting'); module.exports = function(app, passport) { app.get('/admin', function(req, res) { Setting.find(function(err, setting) { if (err) { return res.send(500, err); } console.log(setting); res.render('admin/customize/settings', { title: 'Change Setting | eduBird', user: req.user, setting: res.setting // setting: res.settings }); }); }); 这是我的设置模式: var mongoose = […]

MongoDB – math计算

我需要计算这((86400 + (7200 – 28800)) % 86400)在MongoDB的总和。 可能吗? 或者需要在JavaScript上执行此操作。 mongo是否支持部门的剩余部分?