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

  • Named vectors: Every vector field becomes a named vector with the field’s name, even when there is only one. Pre-create the collection with a named vector for each 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.