gpt4 book ai didi

PHP-Mongo-$ 或

转载 作者:可可西里 更新时间:2023-11-01 09:20:31 26 4
gpt4 key购买 nike

我正在使用 PHP/Mongo 查询如下数据集:

{
description:
{
0:
{level: (some int 0-50)},
1:
{level: (some int 0-50)},

...

n:
{level: (some int 0-50)}
}
}

我如何在 php 中编写函数,该函数将构建一个动态查询来搜索 40 级及以上,使用 $or 并基于描述键的数量 (0 ... n)?

我目前的手动查询不起作用(我感觉这是因为在某些条目中 description.1、2、3 不存在):

find("$or":{"description.0.level":[40,41,42,43,44,45,46,47,48,49,50],"descriptio‌​n.1.level":[40,41,42,43,44,45,46,47,48,49,50],"description.2.level":[40,41,42,43,‌​44,45,46,47,48,49,50],"description.3.level":[40,41,42,43,44,45,46,47,48,49,50]}})

它给我一个错误:

Fatal error: Uncaught exception 'MongoCursorException' with message '$and/$or/$nor must be a nonempty array'

所以,我需要一个函数来动态构建查询并运行 :)。

最佳答案

$or 查询的值本身应该是一个数组。{$or : [...]}

请参阅 MongoDB documentation 中的标准示例.

您可能还想使用诸如 $in(或 $lt$gt 的组合)之类的运算符来选择哪个您感兴趣的描述级别,而不是枚举每个值。

关于PHP-Mongo-$ 或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001423/

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