11 个版本 (6 个重大更新)
0.6.0 | 2019年7月7日 |
---|---|
0.5.0 | 2019年7月4日 |
0.4.0 | 2019年6月19日 |
0.3.3 | 2019年3月16日 |
0.0.5 | 2018年12月25日 |
#64 在 #nosql
每月下载量:43
在 avocado 中使用
50KB
1K SLoC
Avocado,强类型 MongoDB 驱动程序
用法
-
请参阅上面的在线文档 https://docs.rs/avocado,或本地打开它
-
cargodoc --open
-
查看
examples/
文件夹 -
更高级的信息可以在 项目页面 上找到。
-
可以启用
schema_validation
功能(默认启用),在这种情况下,DatabaseExt::empty_collection()
方法将可用。如果使用此方法创建集合,它将添加一个 JSON 模式验证步骤,并指定由magnet
生成的模式。 -
raw_uuid
功能(默认启用)添加了一些有用的扩展方法,以便更方便地使用 UUID 作为_id
字段的类型。如果您在将复杂类型的集合中执行许多插入操作,这可能会很慢。然而,它动态确保其他用户/驱动程序不能在集合中放入格式错误的数据。因此,如果您或其他人也通过 Avocado 驱动程序以外的数据库访问,这可能更有用。它对调试 Avocado 本身也非常有帮助。
更新日志
v0.6.0
- 通过向
Error
添加上下文字典修复 #6。
v0.5.0
- 通过向
Doc derive proc-macro 添加
#[options](...)
属性修复 #5。
v0.4.0
- 通过在
ops::
特性上的options()
方法中添加一个&self
参数来修复 #2。
v0.3.3
- 修复了与
Uuid::from_random_bytes()
相关的弃用警告。 - 捕获了MongoDB客户端的
Cursor
API中传递的错误。
v0.3.2
- 向
DocumentExt
添加了remove_inner_doc()
方法。这使得在transform()
中从嵌套的Document
中删除变得简单。 - 修复了向集合中插入0个实体失败的错误。
- 修复了由
DocumentExt::remove_*()
方法生成的错误信息中键和值类型的错误排序。
v0.3.1
- 为了方便和直观地实现
transform(raw: Document) -> Result<Bson>
方法,向预定义中添加了DocumentExt
特性。 - 希望修复了代码,现在docs.rs可以处理它了
v0.3.0
- 为了提高某些
Collection
方法的效率,添加了Doc::id()
和Doc::set_id()
方法。- 这意味着单元素包装器,如
Box<Doc>
和RefCell<Doc>
,不能再自己实现Doc
接口。
- 这意味着单元素包装器,如
- 添加了
Collection::find_one_and_delete()
、Collection::find_one_and_replace()
和Collection::find_one_and_update()
方法。 - 添加了更多文档,并澄清/改进了现有文档。
- 添加了更多测试,包括测试在
#[derive(Doc)]
应该失败的情况,以及测试可选的_id
是否正确允许。
对 derive 宏进行编译时测试
由于 compiletest_rs
中存在一个错误,运行检查 #[derive(Doc)]
过程宏的错误信息的测试需要先运行 cargo clean
,否则编译将会因 E0464
失败。
因此,推荐运行测试的方式是
cargo clean && cargo test
待办
- 将
weights
属性添加到文本索引中 - 添加迁移
- 当 #29661 稳定后,将
Doc::Id
默认添加到ObjectId
和Query::Output
以及FindAndUpdate::Output
到T
依赖
~2MB
~47K SLoC