Search code examples
linuxmongodbmacosmongodumpmongorestore

Mongorestore: createIndex error: Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed


I receive the following error when running mongorestore command with a large MongoDB database.

the machine where the backup was done:

db version v4.2.0
git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
OpenSSL version: OpenSSL 1.1.1  11 Sep 2018
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1804
    distarch: x86_64
    target_arch: x86_64

local machine version (where I execute mongorestore)

db version v4.0.10
git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

Failed: prod.DeviceState: error creating indexes for prod.DeviceState: createIndex error: Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed.

Any help to solve this issue?

Thank you


Solution

  • For the people who will come here in the future the issue was, I was using MongoDB 4.0 on the local and server was on 4.2:

    Starting in version 4.2, mongodump uses Extended JSON v2.0 (Canonical) format for the metadata files. To parse these files for restore, use mongorestore version 4.2+ that supports Extended JSON v2.0 (Canonical or Relaxed mode) format. For details please see "Metadata Format" section on this : [docs.mongodb.com/manual/reference/program/mongodump][1]

    source: https://dba.stackexchange.com/questions/250312/failed-to-restored-indexes-using-mongorestore-mongodb