MongoDB更新查询,其中字段名称中包含DOT(句点)

时间:2013-10-21 09:16:52

标签: php mongodb mongodb-php

所以在我问这个问题之前我想说我知道Mongo不允许在字段名称中使用句点,即点(。)。

令人惊讶的是,PHP能够将数据作为多维数组中的字段名称插入到mongo中。我使用PHP版本5.4 Mongo驱动程序1.4。

所以数组结构有点像:

Array(
["field1"] => "value",
["field2"] => "123",
["field3"] => array( ["abc.def"] => array( ["test"] => "value" )
);

我想要实现的是将field2值从字符串更改为整数。

它庞大的数据和应用程序依赖于它,我需要将类型从字符串更新为整数或从整数更改为字符串,我可以控制将来插入的应用程序,但输入的内容无法更改,请给我一些解决方法同样的。

非常希望有人会对此有所了解...... !! ;)

1 个答案:

答案 0 :(得分:1)

我能找到的最好的解决方法是使用db.collection.update();虽然我不得不通过一个很长的excel程序并对每一行进行类似的查询,之后我意识到我可以使用db.collection.find()。forEach();

因此,要减少解决方案,请使用forEach迭代并执行db.collection.update(),条件匹配要更新的数据和字段。我将查询格式化为字符串,然后使用eval();

如果你找到一个更短的路,请知道.. !!