mongodb 如何使用nodejs更改mongo集合中特定字段的数据类型字符串为数字

juzqafwq  于 2023-01-12  发布在  Go
关注(0)|答案(3)|浏览(169)
[{
      "id": 5f6af7bd3f06d50018f28680,
      "image": "https://images-na.ssl-images-amazon.com/images/I/51FQpz-zY1L._SL1024_.jpg",
      "name": "Mac book",
      "price": "150",
      "description": "Apple MacBook Air",
      "rating": 4,
    },
    {
      "id": 5f6af7bd3f06d50018f28682,
      "image": "https://static.acer.com/up/Resource/Acer/Laptops/Swift_7",
      "name": "Dell Laptop",
      "price": "250",
      "description": "Find solace in your love for riding when you cruise",
      "rating": 4,
    }]

在这我想改变的所有对象的json Mongodb这是价格的数据类型。
实际上价格是字符串,但我想把它动态转换成数字。

vulvrdjw

vulvrdjw1#

db.my_collection.find({price: {$exists: true}}).forEach(function(obj) {
  obj.price = new NumberInt(obj.price);
  db.my_collection.save(obj);
});
nle07wnf

nle07wnf2#

let data = my_schema.find();
data.map((item) => {
    my_schema.findOneAndUpdate({_id: item._id}, {price: Number(item.price)}})
})
np8igboo

np8igboo3#

如果我没理解错的话,你从数据库中检索对象数组,其中定价字段是字符串,然后你需要将其转换为数字?
1.为什么不把它存储为数字呢?
1.你可以在检索后使用.map函数转换它,或者如果你使用mongoose,你可以用同样的方法在post hook中转换。

相关问题