gpt4 book ai didi

algorithm - mongo $in 反对成对的嵌套文档

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:50 26 4
gpt4 key购买 nike

有没有人有使用 name:boolean 与 numeric permutation-type 表示的对的工作经验,并且最好这样显示。以下是单个记录/行的一部分。

{ ... {status { working: true, married: false }} ...}

对比

{ ... {status: 3} ... }

在后者中我们需要一个排列(未工作+未婚=1;工作+未婚=2;未工作+已婚=3;工作+已婚=4)

然后每个都需要他们各自的查询:

{status.married: true}

对比

{status: {$in : [3,4]}}

进一步的考虑是,大多数查询将不是单个短语,而是并集/交集,例如 {status.married: true}、{status.working: true}{$或者:[{status.married: true}, {status.working: true}]}

后一种形式更简单{status: {$in : [2,3,4]}}

考虑因素包括单个索引与两个索引。

我不确定什么更“可读”重构排列样式似乎更容易。但客户需要知道正确的顺序。

最佳答案

bool 方法的优点:

  1. 查询是明确的/可读的
  2. 文档可读/不言自明
  3. 支持更灵活的查询(所有使用数字排列类型的查询必须使用等式/不等式或“$in”)
  4. 我实际上认为这更容易重构,因为它不是基于数据表示的隐式规则(例如字段的顺序)

数字排列类型的优点:

  1. 查询更短(并且可以说更简单?)(但不是不言自明的)
  2. 只有一个字段可以创建索引
  3. 文件较小

我认为两者之间并没有固有的速度优势。这取决于您运行的数据和实际查询。

考虑您真正关心的是上述哪一项,并据此做出决定。

我倾向于使用显式(“-比隐式更好”)。

关于algorithm - mongo $in 反对成对的嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com