Crates.io | mongodb-ensure-index |
lib.rs | mongodb-ensure-index |
version | 0.1.1 |
created_at | 2025-05-09 13:55:11.264545+00 |
updated_at | 2025-07-09 00:03:44.248156+00 |
description | Mongoose-style ensure-index capabilities for the mongodb crate |
homepage | https://megalithic.llc |
repository | https://gitlab.com/megalithic-llc/mongodb-ensure-index-rs.git |
max_upload_size | |
id | 1667023 |
size | 9,997,220 |
Mongoose-style "ensure index" capabilities for the mongodb crate.
Given a desired mongo index definition:
$ cargo add mongodb-ensure-index
$ make check
use mongodb::IndexModel;
let index_models = vec![
{
IndexModel::builder()
.keys({
doc! {"deletedAt": 1}
})
.options(Some(
IndexOptions::builder().name(Some("deletedAt_1".to_string())).build(),
))
.build()
},
{
IndexModel::builder()
.keys({
doc! {"email": 1}
})
.options(Some({
// Unique non-null emails
IndexOptions::builder()
.name(Some("email_1".to_string()))
.unique(true)
.partial_filter_expression({
doc! {"email": doc!{"$type": "string"}}
})
.build()
}))
.build()
},
];
mongodb_ensure_index::ensure_indexes(coll, index_models).await.unwrap();