coperator/README.md

1.4 KiB
Raw Blame History

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

  1. Fork仓库
  2. 创建新分支
  3. 提交代码
  4. 创建Pull Request

许可证

MIT License