Tag: mongodb

Nodejs + Mongodblogin示例不起作用

我试着从网站的代码http://code.runnable.com/U108R8ihwn4m4TM5/user-creation-signup-and-login-with-express-4-and-mongodb-for-node-js当我跑 节点server.js 出现以下错误 module.js:340 throw err; ^ Error: Cannot find module 'connect-mongo' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/amitnaik01/Login/server.js:6:18) 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 Function.Module.runMain (module.js:497:10) package.json文件如下: { "name": "ExpressApp", "version": "0.0.1", "description": "A Node.js App using express", "dependencies": […]

尝试从使用Mongoose的另一个查找中返回1个字段

我有以下快速路由,我试图通过查找用户电子邮件返回我的用户模型中的特定字段的值。 即使运行以下我不限于特定的字段正在产生一个错误: "message": "Cast to string failed for value \"[object Object]\" at path \"email\"", 我的代码: app.post('/users/forgot',(req, res) => { var body = _.pick(req.body, ['email']); User.find({ email: body }).then((user) => { res.send({user}); }, (e) => { res.status(400).send(e); }); }); 我怎样才能返回我正在寻找的价值?

计算Mongo中引用的对象的数量

给定两个集合,如: users: name posts: title user_id 如何有效地查询超过5个post的用户? 我可以使用$lookup进行聚合,但是对于大型数据集来说需要很长时间。 另一个select是维护users的“postCount”,但我想避免必须保持这一点。 我在节点上使用Mongoose。

比较密码,同时在node.js中放置密码

注册时间密码被encryption并存储在数据库(mongoDB)中。 为了encryption这个密码,我在模型中使用了bcrypt.hash 。 现在我正在使用node.js重置密码如何比较encryption的密码和用户input的密码。 user.js的 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var bcrypt = require('bcrypt-nodejs'); var passportLocalMongoose = require('passport-local-mongoose'); var UserSchema = new Schema({ name: String, email: {type: String, required: true, select: true}, mobile: {type: String, required: true, select: true}, password: {type: String, required: true, select: true}, active:{ type: 'Boolean', default: false}, generatedOtp:{ […]

如何返回与隐私值相关的特定对象值?

我有这个mongoose模型: var user = new Schema({ email : {type: String}, firstName: {type: String}, lastName: {type: String}, username: {type:String}, password: {type:String}, privacy : { displayEmail: {type: Boolean, default: true}, displayUsername: {type:Boolean: default: true}, displayfirstName: {type:Boolean: default: true}, displaylastName: {type:Boolean: default: true} }) 假设用户将displayLastName abd displayLastName的值设置为false 。 然后,我有一个简单的GET请求,返回一个json对象与所有用户的细节。 我如何查询mongo只返回隐私对象中的true的字段? 如果displayfirstName为true,则返回firstName值。 更新 var user = new Schema({ email […]

如何将json对象的数组保存到mongoose?

我试图保存对象的mongoose模式的数组,但它是无法加载数据到laptop架构,我只看到一个插入包含id 。 我怎样才能将json对象的数组保存到mongoose模式? controller.js var laptopData = [ { name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'HP'}, { name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}, { name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}, { name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}, { name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}, { name: […]

是否有可能更新查询中的集合中的值?

我不确定标题是否解释了我想说的。 但是这里假设集合的结构是这样的; [ {email: "alex@sda.com"}, {email: "elizabeth@sds.com"}, {email: "hannah@xx.com"}, ] 我想收到电子邮件,但在@字符之前。 我做了什么来做到这一点? db.collection.find({}).toArray(function(err, result){ var emails = []; for(var i =0; i< result.length; i++){ emails.push(result[i].split("@")[0]); } }) 但是,我不觉得这是有效的,因为在查询之后,我遍历结果并将它们存储在新数组中。 有没有更好的办法,只有alex , elizabeth , hannah查询? 这只是一个例子。 我想问你的build议,因为我有很多这样的情况。 (我正在寻找一种最有效的修剪方式,更新集合中的一些值)

链接承诺更新Mongoose中的参考文档

鉴于以下模式: user { uid:12345, name:myname, account=null } account { _id:6789, name:"myaccount", _owner:12345 } 如何更新user.account以使其引用字段的值为account._owner。 当账户文件被创build时,我想查找并replaceuser.account的值。 我有这样的路线: app.post('/accounts', authenticate, (req, res) => { var account = new Account({ name: req.body.name, _owner: req.body._owner, }); account.save().then((doc) => { //here i wasnt to update a refernce to a // an account field in a User document and set //it […]

mongoose查询子文档属性

我试图通过一个WEB API公开这个function。 在这个代码中设置的方式是,有人在URL上提供一个GET,并提供查询string,forms为: ?field=value&anotherfield.subproperty=value 但我似乎无法查询基于子文档属性的工作。 下面你会发现我的准系统代码,logging我试图接受和我的两个testing用例。 码: var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var config = require('../config'); var User = require('../models/user'); var functions = require('../functions'); router.get('/', function(req,res,next) { //Check Permissions associated with UID *TODO var parameters = req.query; console.log(parameters); User.find(parameters, function(err, users) { if (err) { json = functions.generateOperationOutcome("exception","error",err,"exception"); […]

在数组元素中添加一个子文档

下面的函数返回“结果”参数中的一个数组: module.exports.get = function (req, res) { objModel.find(function (err, results) { res.json({ record: results }) }) }; 我想将其引用集合logging列表添加到每个元素的一个新对象中。 就像下面这样: for (var i = 0; i < results.length; i++) { module.exports.get = function (req, res) { objModel.find({ _id: results[i]._id }, function (err, record) { results[i]["objNew"] = record }) }; } 我的完整代码如下所示: module.exports.get = function (req, res) […]