Migrate from MongoDB to Qdrant

What You Need from MongoDB

  • Connection string — MongoDB URI (e.g., mongodb://user:pass@host:27017)
  • Database name — the database containing your collection
  • Collection name — the collection to migrate
  • Vector field names — the names of fields that store vector embeddings

Concept Mapping

MongoDBQdrantNotes
CollectionCollectionOne-to-one mapping
DocumentPointEach document becomes a point
Vector fieldVectorNamed vectors are preserved
Non-vector fieldsPayloadDirect mapping
_id (ObjectID or string)Point ID + PayloadConverted to UUID; original stored in payload

Run the Migration

docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration mongodb \
    --mongodb.url 'mongodb://localhost:27017' \
    --mongodb.database 'your-database' \
    --mongodb.collection 'your-collection' \
    --mongodb.vector-fields 'embedding' \
    --qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
    --qdrant.api-key 'your-qdrant-api-key' \
    --qdrant.collection 'your-collection'

With Multiple Vector Fields

docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration mongodb \
    --mongodb.url 'mongodb+srv://user:pass@cluster.mongodb.net' \
    --mongodb.database 'your-database' \
    --mongodb.collection 'your-collection' \
    --mongodb.vector-fields 'title_embedding,body_embedding' \
    --qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
    --qdrant.api-key 'your-qdrant-api-key' \
    --qdrant.collection 'your-collection' \
    --migration.create-collection false

All MongoDB-Specific Flags

FlagRequiredDescription
--mongodb.urlYesMongoDB connection string
--mongodb.databaseYesDatabase name
--mongodb.collectionYesCollection name
--mongodb.vector-fieldsYesComma-separated list of vector field names

Qdrant-Side Options

FlagDefaultDescription
--qdrant.id-field__id__Payload field name for original MongoDB _id values

Gotchas

  • Vector field names are required: MongoDB has no schema-level marker for vector fields. You must explicitly list them via --mongodb.vector-fields.
  • ID mapping: MongoDB _id values (ObjectID or string) are converted to Qdrant UUIDs. The original value is stored in payload under --qdrant.id-field.

Next Steps

After migration, verify your data arrived correctly with the Migration Verification Guide.

Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.