【发布时间】:2019-02-12 17:36:38
【问题描述】:
Mongo 不允许文档的键中包含点(请参阅 MongoDB dot (.) in key name 或 https://softwareengineering.stackexchange.com/questions/286922/inserting-json-document-with-in-key-to-mongodb )。
但是,我们有一个庞大的 mongo 数据库,其中一些文档的键中确实包含点。这些文件的格式为:
{
"_id" : NumberLong(2761632),
"data" : {
"field.with.dots" : { ... }
}
}
我不知道这些记录是如何插入的。我怀疑我们一定在某个时候将 check_keys mongod 选项设置为 false。
我的目标是找到有问题的文档,更新它们并删除这些点。我还没有找到如何执行搜索查询。到目前为止,这是我尝试过的:
db.collection.find({"data.field.with.dots" : { $exists : true }})db.collection.find({"data.field\uff0ewith\uff0edots" : { $exists : true}})
【问题讨论】:
-
所以最后你想得到这样的东西:
{ "_id" : NumberLong(2761632), "data" : { "fieldwithdots" : { ... } } }? -
我只想找到
{ "_id" : NumberLong(xxx), "data" : { "field.with.dots" : { ... } } }形式的所有记录。一旦找到,我可以更新它们以删除这些点或用其他东西替换它们。
标签: mongodb mongodb-query