提交 16832e5e 编写于 作者: 雪洛's avatar 雪洛

docs: update jql in

上级 5236e6dc
...@@ -2669,9 +2669,9 @@ const res = await db.collection('geo-near').aggregate().geoNear({ ...@@ -2669,9 +2669,9 @@ const res = await db.collection('geo-near').aggregate().geoNear({
### 查询某字段和另一个表的字段相等的记录@enhanced-in ### 查询某字段和另一个表的字段相等的记录@enhanced-in
> 新增于 HBuilderX 3.7.9 > 新增于 HBuilderX 3.7.12
用于匹配某字段和另一个表的字段相等的记录,只能在where方法内使用 用于匹配某字段和另一个表的字段相等的记录,类似sql语句中的in+子查询的写法,只能在where方法内使用。
**示例** **示例**
...@@ -2688,8 +2688,12 @@ const company = [{ ...@@ -2688,8 +2688,12 @@ const company = [{
// employee表数据 // employee表数据
const employee = [{ const employee = [{
_id: '1', _id: '1',
register_date: 1678867175366, register_date: 1671000000000,
company_id: '1' company_id: '1'
}, {
_id: '1',
register_date: 1672000000000,
company_id: '2'
}, { }, {
_id: '2', _id: '2',
register_date: 1670000000000, register_date: 1670000000000,
...@@ -2699,7 +2703,7 @@ const employee = [{ ...@@ -2699,7 +2703,7 @@ const employee = [{
```js ```js
const companyFilter = db.collection('company').where('status == 0').field('_id').getTemp() // 过滤company表,取其中status为0的记录的_id组成过滤数组 const companyFilter = db.collection('company').where('status == 0').field('_id').getTemp() // 过滤company表,取其中status为0的记录的_id组成过滤数组
const res = await db.collection('employee').where(`register_date > 1670000000000 && company_id in ${JSON.stringify(companyFilter)}`).get() // 获取用户表的company_id在过滤条件内的记录 const res = await db.collection('employee').where(`register_date > 1670000000000 && company_id in ${companyFilter}`).get() // 获取用户表的company_id在过滤条件内的记录
``` ```
此查询匹配到的数据库记录为 此查询匹配到的数据库记录为
...@@ -2707,12 +2711,14 @@ const res = await db.collection('employee').where(`register_date > 1670000000000 ...@@ -2707,12 +2711,14 @@ const res = await db.collection('employee').where(`register_date > 1670000000000
```js ```js
[{ [{
_id: '1', _id: '1',
register_date: 1678867175366, register_date: 1671000000000,
company_id: '1' company_id: '1'
}] }]
``` ```
注意in的这种用法底层使用了lookup方法,在数据量很大时效率不高,推荐在使用时尽量在in之外的条件内筛选出尽量小的数据集。上述示例中`register_date > 1670000000000 && company_id in ${JSON.stringify(companyFilter)}``register_date > 1670000000000`这部分条件应筛选出尽量小的结果集以便查询能更高效。 ::: warning 注意
in的这种用法底层使用了lookup方法,在数据量很大时效率不高,推荐在使用时尽量在in之外的条件内筛选出尽量小的数据集。以上述示例中`register_date > 1670000000000 && company_id in ${companyFilter}`查询条件为例,`register_date > 1670000000000`这部分条件应筛选出尽量小的结果集以便查询能更高效。
:::
**使用限制** **使用限制**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册