|
||
---|---|---|
.gitignore | ||
LICENSE | ||
README.md | ||
case.md | ||
compare.go | ||
compare_test.go | ||
coperator.go | ||
coperator_test.go | ||
go.mod | ||
logic.go |
README.md
COperator
实现MongoDB风格查询操作符的文档过滤库,提供灵活的条件匹配功能
安装
# 确保已安装Go环境(1.23.1+)
go get git.kingecg.top/kingecg/coperator
核心功能
- Document过滤:通过
DocumentOperator
检查文档是否满足过滤条件 - 支持操作符:
$gt
、$ge
、$lt
、$le
、$eq
、$ne
、$in
、$nin
、$and
、$or
、$nor
- 嵌套查询:支持嵌套文档和数组的路径访问(
.
分隔路径) - 链式条件:支持
$and
、$or
等组合条件查询
使用示例
package main
import (
"fmt"
"git.kingecg.top/kingecg/coperator"
)
func main() {
// 创建测试文档
doc := &coperator.Document{
"name": "Alice",
"age": 30,
"address": map[string]interface{}{
"city": "Beijing",
"zip": 100000,
},
}
// 定义过滤条件
filter := coperator.Filter{
"age": map[string]interface{}{
"$gt": 25,
},
"address.city": "Beijing",
}
// 执行查询
result, err := coperator.DocumentOperator(doc, filter, "", nil)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Document matches filter: %v\n", result) // 输出: Document matches filter: true
}
测试
# 运行单元测试
go test -v ./...
贡献
欢迎提交PR或Issue
- Fork仓库
- 创建新分支
- 提交代码
- 创建Pull Request
许可证
MIT License