Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 修改Mongoose返回的对象_Json_Node.js_Mongodb_Mongoose_Model - Fatal编程技术网

Json 修改Mongoose返回的对象

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

我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。 考虑一个MangGDB用户集合。 还可以考虑一个包含数据库集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像:

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))
})