[英]Differences between $or and $in when querying Strings in MongoDB / mongoose
在构建一个API,我需要匹配包含文件pending
或active
的键值status
。
尝试时
args.status = {
$or: [
'active',
'pending'
]
}
我收到一个错误: cannot use $or with string
然而,
args.status = {
$in: [
'active',
'pending'
]
}
效果很好。
我希望$or
在这里工作。 有人可以提供关于两者之间差异的上下文,以及为什么字符串需要$in
吗?
那是因为$ or需要对象数组。 定义一些过滤器的对象,至少要匹配其中的一个过滤器才能返回结果。 对于您的特定情况, $ in是最佳选择。 仍然,如果您想使用$ or ,查询将类似于:
{
$or: [
{'args.status' : {$eq: 'active'}},
{'args.status' : {$eq: 'pending'}}
]
}
我建议您坚持使用$ in,因为它最适合您的要求。
您可以查看官方文档以获取有关$ or的更多详细信息
希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.