gpt4 book ai didi

php - 蒙戈 : $or query looking for multiple possible values in the same field

转载 作者:行者123 更新时间:2023-12-04 12:50:46 24 4
gpt4 key购买 nike

我在 mongo 上有一个名为“reports”的集合,它可以让客户发表评论并进行讨论。

以下是每个报告中“讨论”数组的样子:

"discussions" : [
{
"user_id" : "david",
"timestamp" : ISODate("2016-03-17T01:15:00Z"),
"comment" : "I was wondering, did anyone else find it interesting?",
"replies" : [
{
"user_id" : "kevin",
"timestamp" : ISODate("2016-03-17T01:15:00Z"),
"comment" : "Not really"
}
]
}
]

由于每个评论上方显示的用户信息经常发生变化,我想使用引用并根据“user_id”字段从“users”集合中提取他们的信息,而不是将他们的信息嵌入到每个讨论帖中。
我想灵活地分片整个数据库,所以“$lookup”可能是不行的(因为,如果我理解正确,“$lookup”中的“from”字段不能被分片)。

因此,我想构建一个类似于以下 SQL 的“$or”查询:
SELECT * FROM USERS WHERE id IN ('david', 'kevin')

这将从用户集合中提取额外的用户信息,然后将它们与应用程序级别的其余评论详细信息结合起来。

出于这个原因,我推送到 find() 的查询是由应用程序构建的,通过迭代“报告”的结果并提取“user_id”。
这是查询的 var_dump 的样子:
array(1) {
["$or"]=>
array(1) {
[0]=>
array(1) {
["_id"]=>
string(4) "david"
},
[1]=>
array(1) {
["_id"]=>
string(4) "kevin"
}
}
}

但是,它似乎不起作用,因为尽管数据库中有这些用户,但我没有得到任何结果。
注意:“users”集合中用户的_id为用户名。

我是否错误地执行了 $or 查询(我在文档中看到的所有内容都是在不同字段上执行的 '$or' )?
有没有更好的方法来完全解决这个问题?
提前致谢!

最佳答案

您应该为此使用查询。在 mongo 语法中:

db.users.find({ "_id" : { $in : [ "david", "kevin" ] } })

关于php - 蒙戈 : $or query looking for multiple possible values in the same field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062662/

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