【问题标题】:Mongo restore filter is not workingMongo 还原过滤器不起作用
【发布时间】:2015-01-05 23:35:58
【问题描述】:

我转储了我的 mongo 数据库,我想使用过滤器恢复它,我正在执行以下步骤

我正在编写以下命令

mongorestore -h mongo1.xxx.projects.xyz.biz --db xxx --collection photos  --filter '{"_id" : { "$in": [ObjectId("54614b85ec8d83183f368a0d"), ObjectId("542c3b7b91201b49132d16d0"), ObjectId("546cac1691201b7b5438cac8"),ObjectId("546cac96ec8d830a7b33bfc7"),ObjectId("546bfd14ec8d830a8ad63db3"),ObjectId("5487691aec8d837be8426106"),ObjectId("54513bbeec8d8308418ce8f2"),ObjectId("545139b791201b63b43cb135"),ObjectId("549ca49891201b6562012d42"),ObjectId("54a32fdbec8d83019291d433"),ObjectId("54a42132ec8d83019bb5e23e"),ObjectId("54a423ce91201b64f73a9752"),ObjectId("54a42346ec8d83019291d444"),ObjectId("54a4246691201b64f73a9753"),ObjectId("54a425e3ec8d8301a1c3b85d"),ObjectId("54a4264291201b64f29d0db8"),ObjectId("54a4268fec8d8301a1c3b85e"),ObjectId("54a4275e91201b64f73a9755"),ObjectId("54a42e3f91201b64e8ed20d3"),ObjectId("54a42e6c91201b64e8ed20d4"),ObjectId("54a42e96ec8d8301a1c3b860"),ObjectId("54a43473ec8d83019bb5e253"),ObjectId("54a43c3a91201b64f29d0dc0"),ObjectId("54a43f05ec8d83019291d453"),ObjectId("54a43ff591201b64f29d0dc3"),ObjectId("54a4425c91201b64e8ed20dd"),ObjectId("54a442e1ec8d8301a1c3b866"),ObjectId("54a44767ec8d83019bb5e25c"),ObjectId("54a447daec8d8301a1c3b868"),ObjectId("54a450e291201b64f29d0dc9"),ObjectId("54a47e1a91201b64e8ed20e2"),ObjectId("54a48896ec8d83019bb5e26f"),ObjectId("54a48984ec8d830199f07151"),ObjectId("54a48b8c91201b64e8ed20ef"),ObjectId("54a493b1ec8d830199f07158"),ObjectId("54a495b3ec8d8301a1c3b89b"),ObjectId("54a73d11ec8d830199f0718b")]}}' /home/ubuntu/backup/05012015mongodump/dump/xxx/photos.bson

它说

2081 objects found
37 objects processed

但是我在 mongo 服务器上的数据是一样的。没有恢复

有什么想法吗?

【问题讨论】:

  • 是的。手册中关于扩展 JSON 的注释应改为使用 {"$oid": "54614b85ec8d83183f368a0d"}
  • 谢谢,但问题是 mongorestore 没有更新现有对象,它只是插入。
  • 哦。好的。它不会那样做。您只能插入,因此如果您想从还原中替换数据,则必须将其删除。

标签: mongodb restore mongodump mongorestore


【解决方案1】:

Mongorestore 仅用于插入

Behavior 部分下的official MongoDB mongorestore documentation 中写入以下内容(强调我的):

仅插入

mongorestore 可以创建新数据库或将数据添加到现有数据库。但是,mongorestore 只执行插入,不执行更新。也就是说,如果将文档恢复到现有的数据库和集合以及现有文档的值 _id 字段与待办事项相同-恢复的文件,mongorestore 不会覆盖那些文件

Niel Lunn 在他的评论中所说的相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2018-06-12
    • 2012-02-19
    • 1970-01-01
    • 2013-10-16
    • 2014-08-24
    • 2018-01-04
    相关资源
    最近更新 更多