# mongodb-plugin
**Repository Path**: weirdor_admin/mongodb-plugin
## Basic Information
- **Project Name**: mongodb-plugin
- **Description**: mongodb 封装 crud
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-09
- **Last Updated**: 2025-07-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#[查询构造]说明文档
> Version 1.0
# Overview
> 该文档为查询构造,主要介绍在各个【查询】api中查询参数query={...}和projection={...}的指定方法。
>
> **query**用于指定查询条件,参数的值是一个标准的json格式的字符串,如格式错误会收到400错误信息;所以请确保字符串的正确性(详情请参考json百度百科)。
>
> **projection**用于指定查询的投影,可以指定哪些字段返回或者不返回。
>
>
# Architecture
> 1. query说明
> 2. projection说明
通过query查询参数可以指定查询时的条件,值为json格式字符串,会经过解析器解析为mongodb可执行的查询语句;
>
示例:`/api/api/article?query={"cateId":2}`
具体规则如下:
1.简单的值对比:
{
"field1":"xxx",
"field2":30,
"field3":true
}
2.模糊查询(只对字符串有效)
{
"field":{
"like":true, //模糊标志
"value":"xxx"
}
}
like为模糊标识,只对字符串有效,**默认为false**,当like=false时等效于【简单的值对比】:
{
"field":"xxx"
}
3.比较
gt 大于
gte 大于等于
lt 小于
lte 小于等于
ne 不等于
eq 等于
----------以上对数值、字符串有效
start 开始于
end 结束于
----------start和end适用于日期范围查询,值为字符串,格式为"yyyy-MM-dd HH:mm:ss"
查询示例:
{
"field1":{
"gt":20,
"lt":30
},
"field2":{
"ne":23
},
"field3":{
"ne":"你好"
},
"field4":{
"start":"2017-01-04 00:00:00",
"end":"2017-03-02 19:30:13"
}
}
下面查询等价:
{
"field":{
"eq":20
}
}
等效于
{
"field":20
}
4.查询条件逻辑组合:**and,or**
各查询条件**默认为and的关系**,即所有条件都满足才匹配;需要时可以显示指定组合逻辑;
**and 和 or 可以相互嵌套**
{
"and":[
{
"field1":"xxx"
},
{
"field1":{
"gt":20,
"lt":30
},
"field2":{
"ne":23
}
}
],
"or":[
{
"field":{
"like":true,
"value":"xxx"
}
},
{
"field3":{
"ne":"你好"
}
}
]
}
### 2. projection说明
projection用于指定哪些字段返回或者不返回 若projection中既有0又有1, 则只处理1
格式为:
>
projection={"field1":1,"field2":1}
1指定返回
0指定不返回