重命名MongoDB子集合属性

时间:2013-02-16 20:46:54

标签: mongodb rename

我有一个租户集合,每个租户实体都有一个TenantLeases子列表。 TenantLease实体有一个MonthlyRent属性,我试图将其重命名为Rent。这是我试过的:

db.Tenant.update( { "TenantLeases.MonthlyRent": { $exists:true } }, { $rename: { "TenantLeases.MonthlyRent": "TenantLeases.Rent" } }, false, true);

$重命名源字段无效

db.Tenant.update( { "TenantLeases.$.MonthlyRent": { $exists:true } }, { $rename: { "TenantLeases.$.MonthlyRent": "TenantLeases.$.Rent" } }, false, true);

$ rename source可能不是动态数组

显然$ rename不起作用,所以现在我正在尝试迭代并重命名TenantLeases,但是我不知道如何更新特定的数组项:

db.Tenant.find().forEach(function(tenant) {
   if(tenant.TenantLeases) {
      for(var k=0;k<tenant.TenantLeases.length;k++) {
         db.Tenant.update( { "TenantLeases." + k + ".MonthlyRent": { $exists:true } }, { $rename: { "TenantLeases." + k + ".MonthlyRent": "TenantLeases." + k + ".Rent" } }, false, false);//gives syntax error
      }
   }
});

0 个答案:

没有答案