From 32250ddaaa2923422c515caf1776f0042e9d498d Mon Sep 17 00:00:00 2001 From: kingecg Date: Thu, 19 Jun 2025 20:33:43 +0800 Subject: [PATCH] =?UTF-8?q?docs(README):=20=E6=9B=B4=E6=96=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加项目简介、安装方法、核心功能说明 - 提供使用示例代码 - 增加测试和贡献指南 - 附上许可证信息 --- README.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 476e670..f084fec 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,69 @@ -# coperator +# COperator +实现MongoDB风格查询操作符的文档过滤库,提供灵活的条件匹配功能 + +## 安装 +```bash +# 确保已安装Go环境(1.23.1+) +go get git.pyer.club/kingecg/coperator +``` + +## 核心功能 +- **Document过滤**:通过`DocumentOperator`检查文档是否满足过滤条件 +- **支持操作符**:`$gt`、`$ge`、`$lt`、`$le`、`$eq`、`$ne`、`$in`、`$nin` +- **嵌套查询**:支持嵌套文档和数组的路径访问(`.`分隔路径) +- **链式条件**:支持`$and`、`$or`等组合条件查询 + +## 使用示例 +```go +package main + +import ( + "fmt" + "git.pyer.club/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 +} +``` + +## 测试 +```bash +# 运行单元测试 +go test -v ./... +``` + +## 贡献 +欢迎提交PR或Issue +1. Fork仓库 +2. 创建新分支 +3. 提交代码 +4. 创建Pull Request + +## 许可证 +MIT License \ No newline at end of file