大家好,我想实现这样的功能,如有一个mongoose的Schema定义如下: <code> var UserSchema=new Schema({ id:ObjectId, tags:[String], msgbody:String, sms:Boolean, age:Number, createtime:{type: Date, default: Date.now }, bdlocation:BdLocation, items:[Item] });
var Item={ id:String, name:String };
var BdLocation={ id:String, area:String, city:String };
//data示例值 var data={id:‘100’,tags:[‘tag1’,‘tag2’],msgbody:‘hi’,sms:True,age:30,bdlocation:new BdLocation{id:‘200’,area:‘area2’,city:‘gz’},items:[{},{}]};
function docopy(data){ var user = new UserSchema(); //一般是这样一个个赋值 user.id=data.id; user.tags=data.tags; user.msgbody=data.msgbody; user.sms=data.sms; user.age=data.age; user.bdlocation=data.bdlocation; user.items=data.items; //但如果字段多就比较麻烦,效率也不高,请问有没有一些函数可以完成这样的动作。 user=copyValue(data); //不知是否存在这样的一个copy函数??? //或这种需求请问如何实现比较好??谢谢!
user.save(function(err){ if(err){ console.log(err); } }); } </code>
谢谢,我现在试着用,好像也可以,不清楚为什么要判断 Array 和 Object? <code> var user= new UserSchema(); for(var key in data){ user[key]=data[key]; console.log(key+’:’+data[key]); } </code>
因为复制数组返回的是数组,复制对象返回的是对象