15个版本 (6个重大更新)
0.6.0 | 2019年7月7日 |
---|---|
0.4.0 | 2019年6月19日 |
0.3.3 | 2019年3月16日 |
0.0.5 | 2018年12月15日 |
0.0.1 | 2018年7月18日 |
#2833在数据库接口
每月下载量 54
135KB
2K SLoC
Avocado,强类型MongoDB驱动程序
用法
-
请参阅上方的在线文档,或本地打开
-
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::
traits的options()
方法中添加一个&self
参数来解决#2问题。
v0.3.3
- 修复了与
Uuid::from_random_bytes()
相关的弃用警告。 - 捕获了一些错误,这些错误错误地通过了MongoDB客户端的
Cursor
API。
v0.3.2
- 向
DocumentExt
添加了remove_inner_doc()
方法。这允许在transform()
中轻松链式删除嵌套的Document
。 - 修复了向集合插入0个实体时失败的bug。
- 修复了由
DocumentExt::remove_*()
方法生成的错误信息中键和值类型的错误排序。
v0.3.1
- 为方便和惯用实现
transform(raw: Document) -> Result<Bson>
方法,在预言中添加了DocumentExt
trait。 - 希望修复了代码,现在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)]
proc-macro 的错误信息的测试需要先运行 cargo clean
,否则编译将会失败,并显示 E0464
错误。
因此,建议的运行测试的方法是
cargo clean && cargo test
待办
- 将
weights
属性添加到文本索引 - 添加迁移
- 一旦 #29661 稳定后,将
Doc::Id
默认添加到ObjectId
、Query::Output
和FindAndUpdate::Output
中,并将T
依赖项
约 16MB
约 315K SLoC