gpt4 book ai didi

json - 修改 Mongoose 返回的对象

转载 作者:可可西里 更新时间:2023-11-01 10:16:06 26 4
gpt4 key购买 nike

我一直在研究 Mongoose 文档,但找不到实现我想要做的事情的方法。考虑一个 MongoDB 用户集合。还要考虑一个 Mongoose UserSchema,它具有在数据库集合中找到的所有字段。

现在,我想登录到控制台,所有用户,但属性已更改。有点像:

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():

function toApiUserSchema(user){
username = user.username;
email = user.email;
someAggregate = user.Username + user.Email;
.......and so on.....;
}

考虑到 .find() 函数的异步类型,我不确定这是否可以完成。我来自 C# 和 PHP 背景,只使用关系数据库,这可以通过在 User 类中有一个只返回所需值的函数轻松实现。

可以吗?!

最佳答案

您可以在用户架构上为此创建静态方法。在模式和模型创建之间定义静态方法很重要。另请注意,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))
})

关于json - 修改 Mongoose 返回的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42912870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com