MongoDB Array Search in Query 或客户端


MongoDB Array Search in Query or client side

我想知道什么更好。我有一个这样的查询:

Array
(
[_id] => MongoId Object
    (
        [$id] => 4eeedd9545c717620a000007
    )
[field1] => ...
[field2] => ...
[field3] => ...
[field4] => ...
[field5] => ...
[field6] => ...
[votes] => Array
    (
        [whoVoted] => Array
            (
                [0] => 4f98930cb1445d0a7d000001
                [1] => 4f98959cb1445d0a7d000002
                [1] => 4f88730cb1445d0a7d000003
            )
    )
)

哪个会更快:

  1. 在 1 个查询中提取整个数组并使用in_array()找到正确的 id?
  2. 从第一个查询中提取除投票之外的所有内容,然后执行另一个 mongodb 查询以查看数组中是否存在该 id?

这取决于我建议您测试的很多因素,但大多数情况下,IMO 只执行 2 个查询会更快

取决于返回/搜索的数组的大小。

不同的服务器也在做这项工作,你说的更快是什么意思?规模如何?