在MongoDB PHP中将数据类型从字符串更改为整数

在MongoDB PHP中将数据类型从字符串更改为整数,php,mongodb,Php,Mongodb,我有一组文档,其中一些product\u id存储在字符串中 [ { "_id": ObjectId("foobar1"), "product_id": "1" }, { "_id": ObjectId("foobar2"), "product_id": 2 } ] 是否有任何方法可以将使用MongoDB PHP的所有文档的产品id转换为整数?这可能会帮助您 db.collection.find().forEach(function(produc

我有一组文档,其中一些
product\u id
存储在字符串中

[
  {
    "_id": ObjectId("foobar1"),
    "product_id": "1"
  },
  {
    "_id": ObjectId("foobar2"),
    "product_id": 2
  }
]
是否有任何方法可以将使用MongoDB PHP的所有文档的
产品id
转换为整数?

这可能会帮助您

db.collection.find().forEach(function(product) {
    product.product_id= new NumberInt(product.product_id);
    db.collection.save(product);
});
或者使用更新

db.collection.find().forEach(function(data) {
    db.collection.update({_id:data._id},{$set:{product_id:parseInt(data.product_id)}});
})
这可能会帮助你

db.collection.find().forEach(function(product) {
    product.product_id= new NumberInt(product.product_id);
    db.collection.save(product);
});
或者使用更新

db.collection.find().forEach(function(data) {
    db.collection.update({_id:data._id},{$set:{product_id:parseInt(data.product_id)}});
})

更好、更简单的方法是在MongoShell中实现,下面的javascript函数将完成将所有
product\u id
从字符串转换为整数的工作

如果所有product_id字符串都可以转换为整数,那么这将起作用,比如product_id的可能值可以是“1”、“34343”、“23”


更好、更简单的方法是在MongoShell中实现,下面的javascript函数将完成将所有
product\u id
从字符串转换为整数的工作

如果所有product_id字符串都可以转换为整数,那么这将起作用,比如product_id的可能值可以是“1”、“34343”、“23”


您还可以搜索特定类型。查看的文档。字符串是
$type:2

db.collection.find({
    product_id: {
        $type: 2
    }
}).forEach(function(doc) {
    doc.product_id = new NumberInt(doc.product_id);
    db.product.save(doc);
});

您还可以搜索特定类型。查看的文档。字符串是
$type:2

db.collection.find({
    product_id: {
        $type: 2
    }
}).forEach(function(doc) {
    doc.product_id = new NumberInt(doc.product_id);
    db.product.save(doc);
});

但是你不是这样看所有的文件吗<代码>“产品id”:“1”的存在与
“产品id”:2
的存在一样多。是的,它贯穿所有文档,第一个条件是确保
产品id
存在于文档中。但您不是以这种方式浏览所有文档吗<代码>“产品id”:“1”与
“产品id”:2
一样存在。是的,它贯穿所有文档,第一个条件是确保文档中存在
产品id
。感谢您的回答。我已经意识到通过Mongo Shell这样做。我正在寻找MongoDB PHP中的一些东西,正如问题中明确提到的。谢谢你的回答。我已经意识到通过Mongo Shell这样做。我正在MongoDB PHP中寻找一些东西,正如问题中明确提到的那样。