在集合更新中获取mongo文档实例值

时间:2018-06-05 19:27:31

标签: node.js mongodb mongoose

所以我在这里进行此迁移工作正常。使用migrate-mongo npm包。每个listing文档都有latlng个键/值对,我需要在geo下移动:

up(db, next) {
 db.collection('listings').find().forEach((listing) => {
   db.collection('listings').findOneAndUpdate(
     { id: listing.id },
     {
       $set: {
         geo: {
           type: [listing.lat, listing.lng],
           index: '2d',
         },
       },
     }
   );
 });
 next();
},

down(db, next) {
  db.collection('listings').update({}, { $unset: { geo: 1 } });
  next();
}

问题是缺乏mongo的经验,感觉可以通过db.collection.update以更优化的方式完成。像这样:

db.collection('listings').update({}, {
 $set: {
  geo: {
    type: [this.lat, this.lng],
    index: '2d',
  }
 }
});

问题是this.latthis.lng失败,因为this未指向文档实例。有没有办法在更新中获取实例值?

0 个答案:

没有答案