Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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
Javascript 下划线JS不会扩展对象_Javascript_Node.js_Object_Mongoose_Underscore.js - Fatal编程技术网

Javascript 下划线JS不会扩展对象

Javascript 下划线JS不会扩展对象,javascript,node.js,object,mongoose,underscore.js,Javascript,Node.js,Object,Mongoose,Underscore.js,我正在尝试使用下划线合并2个对象。目标对象是一个mongoose模型,但我对其应用了lean(),使其返回一个javascript对象,而不是mongo文档 model.find({}).lean().exec(function (error, object) {}); 然后我尝试使用下划线进行扩展 _.extend(object, source); 但它只返回源对象。 我试过使用简单的对象进行测试,这些对象工作得很好,所以我假设这与猫鼬有关 起作用的简单对象是: {foo:'foo'},{

我正在尝试使用下划线合并2个对象。目标对象是一个mongoose模型,但我对其应用了
lean()
,使其返回一个javascript对象,而不是mongo文档

model.find({}).lean().exec(function (error, object) {});
然后我尝试使用下划线进行扩展

_.extend(object, source);
但它只返回源对象。 我试过使用简单的对象进行测试,这些对象工作得很好,所以我假设这与猫鼬有关

起作用的简单对象是:

{foo:'foo'},{bar:'bar'}
我正在尝试合并但无法合并的对象是:

{
  _id: 526540eaa77883d815000029,
  name: 'House',
  description: '',
  type: 'residential',
  cost: 100,
  buildTime: 5,
  resources: { produces: [], required: { wood: 5 } },
  population: { provides: 10, required: 0 },
  requires: [],
  maxLevel: 5,
  upgrades:
   { '2': { resourceMultiplier: 1.2, cost: 150, time: 5 },
     '3': { resourceMultiplier: 1.5, cost: 200, time: 7 },
     '4': { resourceMultiplier: 2, cost: 300, time: 10 },
     '5': { resourceMultiplier: 2.5, cost: 500, time: 15 } },
  scale: { x: 1, y: 1, z: 1 } 
}


{ 
  empireId: '52654578a4eff60000000001',
  buildingId: '526540eaa77883d815000029',
  level: 1,
  isComplete: false,
  isUpgrading: false,
  gridId: '175|0|125',
  started: 1382442513823,
  _id: 526666113fccae68be000003,
  __v: 0 
}

有人以前遇到过这个问题,或者知道我哪里出了问题吗?

我很愚蠢。源对象是从文件顶部的另一个mongoose查询中获取的,该查询是mongoose.Document的实例,因此无法更改。我向它添加了
lean()
,使它返回一个javascript对象,现在一切正常。

只是为了澄清,我可以手动操作mongoose返回的数据
object.name='foo'
,但我宁愿合并对象,也不愿手动操作。\ id需要是一个字符串。e、 g._id:'526540eaa77883d815000029'。否则它应该是一个有效的数字,如5265400029…上面的对象只是来自console.log,_id是mongoose对象