MongoDB中的反向数组字段

mat*_*and 4 mongodb mongodb-query aggregation-framework

我有一个集合,其中包含以错误顺序输入的位置字段:

location: [38.7633698, -121.2697997]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用...在场上放置2d索引时

db.collection.ensureIndex({'location': '2d'});
Run Code Online (Sandbox Code Playgroud)

...我得到以下错误,因为纬度和经度是相反的.

"err" : "location object expected, location array not in correct format",
"code" : 13654
Run Code Online (Sandbox Code Playgroud)

如何为mongo shell中的每个文档反转此数组?

Iva*_*Srb 6

db.loc.find().forEach(function (doc) {
    var loc = [ doc.location[1], doc.location[0] ]; 
    db.loc.update(doc, { $set: { location: loc } });
})
Run Code Online (Sandbox Code Playgroud)