`pouchdb-find` Mango Query with with `$and` and nested `$or` with partially matching `$elemMatch` tree misses a case.
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript
- 领域
- databases
调研方向
首先使用 PouchDB-find v9.0.0 重现嵌套的 $and/$or 和 $elemMatch 查询,然后跟踪扩展查询组合的 selector 处理过程。完成的标准是保留第四个预期组合,并为此情况添加 regression test。
由索引模型根据 Issue 内容生成。
描述
PouchDB: v9.0.0
PouchDB-find: v9.0.0
Mango Query with with $and and nested $or with partially matching tree misses a case.
query given to find:
{ selector: {
$and: [{
$or: [
{ title: { $eq: "IBM" } },
{ releases: { $elemMatch: { localTitle: { $elemMatch: { $eq: "IBM" } } } } }
] }, {
$or: [
{ madeIn: { $eq: "US" } },
{ releases: { $elemMatch: { madeFor: { $eq: "US" } } } }
]}
}}
results into:
{ selector: {
$or: [{
{ title: { $eq: "IBM" } },
{ madeIn: { $eq: "US" } },
}, {
{ title: { $eq: "IBM" } },
{ releases: { $elemMatch: { madeFor: { $eq: "US" } } } }
}, {
{ releases: { $elemMatch: { localTitle: { $elemMatch: { $eq: "IBM" } } } } },
{ madeIn: { $eq: "US" } }
}],
}}
expected (if modified at all):
{ selector: {
$or: [{
{ title: { $eq: "IBM" } },
{ madeIn: { $eq: "US" } },
}, {
{ title: { $eq: "IBM" } },
{ releases: { $elemMatch: { madeFor: { $eq: "US" } } } }
}, {
{ releases: { $elemMatch: { localTitle: { $elemMatch: { $eq: "IBM" } } } } },
{ madeIn: { $eq: "US" } }
}, {
{ releases: { $elemMatch: { localTitle: { $elemMatch: { $eq: "IBM" } } } } },
{ releases: { $elemMatch: { madeFor: { $eq: "US" } } } }
}],
}}
- 主要语言
- JavaScript
- 星标
- 17.6k
- 派生
- 1.5k
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/pouchdb 的其他 Issue
-
elemMatch throws TypeError: value is null if array has null element可能已有人在做 @henyanagar 于 146 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 4/5 3-5 天 新手友好度 22/100
-
难度 3/5 1-2 天 新手友好度 55/100
-
难度 3/5 1-2 天 新手友好度 65/100
相似的 Issue
-
bug 🐛
难度 2/5 1-3 小时 新手友好度 78/100
comunica/comunica#1960 · 1 条评论 ·
维护者通常 1 天内回复
-
Waiting for: Product Owner
难度 2/5 1-3 小时 新手友好度 76/100
getsentry/sentry-javascript#26203 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
bytedance/flowgram.ai#1235 ·
维护者通常 1 天内回复