我希望能够遍历集合,以便能够遍历所有对象。这是我的架构:
'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const bcrypt = require('bcrypt');
const moment = require('moment');
//Create user schema
const UserSchema = new Schema ({
username: { type: String, unique:true },
password: {type:String},
phonenumber: Number,
});
//**************PASSWORD STUFF *******************************
//Hash the password so it becomes encrypted.
UserSchema.methods.generateHash = function(password){
return bcrypt.hashSync(password,bcrypt.genSaltSync(9));
}
UserSchema.methods.validPassword = function(password){
return bcrypt.compareSync(password,this.password);
}
//************************************************************
//Schema model.
const User = mongoose.model('user-dodger', UserSchema);
module.exports = User;
答案 0 :(得分:5)
假设您正在尝试查询数据库中的所有用户,您只需使用js map函数为您完成工作
这是我所说的
的一个例子const queryAllUsers = () => {
//Where User is you mongoose user model
User.find({} , (err, users) => {
if(err) //do something...
users.map(user => {
//Do somethign with the user
})
})
}
答案 1 :(得分:0)
猫鼬现在有 async iterators。它们的优点是不需要在开始迭代之前加载集合中的所有文档:
for await (const doc of Model.find()) {
doc.name = "..."
await doc.save();
}
这里有一个 great blog post 包含更多详细信息。