Json 修改Mongoose返回的对象
我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。 考虑一个MangGDB用户集合。 还可以考虑一个包含数据库集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像:Json 修改Mongoose返回的对象,json,node.js,mongodb,mongoose,model,Json,Node.js,Mongodb,Mongoose,Model,我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。 考虑一个MangGDB用户集合。 还可以考虑一个包含数据库集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像: Users = mongoose.UserSchema; ApiUserSchema; Users.find(function(err,users){ //for each user that mongoose finds, //I want to conve
Users = mongoose.UserSchema;
ApiUserSchema;
Users.find(function(err,users){
//for each user that mongoose finds,
//I want to convert from UserSchema to "ApiUserSchema"
//Something like the following:
newUsers = users.ToApiUserSchema();
console.log(newUsers);
})
users.ToApiUserSchema():
给定.find()函数的异步类型,我不确定是否可以这样做。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现
能做到吗 您可以在用户架构上为此创建静态方法。在模式和模型创建之间定义静态方法很重要。还要注意,
find
返回的数组不是一个对象
var userSchema = new mongoose.Schema({
username: String,
email: String,
password: Number
})
userSchema.statics.toApiUserSchema = function(data) {
return data.map(function(user) {
return {
email: user.email,
username: user.username,
emailAndUsername: user.email + user.username
}
})
}
var User = mongoose.model('User', userSchema)
User.find({}, function(err, users) {
console.log(User.toApiUserSchema(users))
})
你是我等了一整天的上帝。谢谢
var userSchema = new mongoose.Schema({
username: String,
email: String,
password: Number
})
userSchema.statics.toApiUserSchema = function(data) {
return data.map(function(user) {
return {
email: user.email,
username: user.username,
emailAndUsername: user.email + user.username
}
})
}
var User = mongoose.model('User', userSchema)
User.find({}, function(err, users) {
console.log(User.toApiUserSchema(users))
})