gpt4 book ai didi

javascript - 当我需要用 and 子句分隔查询时, Mongoose 中有两个 "or"子句

转载 作者:行者123 更新时间:2023-11-28 19:26:36 24 4
gpt4 key购买 nike

我想在 mongo 中查询“由我创建或添加书签的未过期或常绿(过期为空的帖子)帖子”

我的查询的问题是 mongoose 将 or 语句组合在一起,因此我错误地得到 (unexpired or evergreen or mine or bookmarked)而不是( (unexpired or evergreen) and (mine or bookmarked) )

如何将 Mongoose 查询更改为我上面概述的后一种正确情况。我应该使用“and”子句...或者也许我应该只做一个 not(expiration > now) ?

var query =
Invite.find({ isActive:true })
.or([
{ 'expiration': {$gt: new Date()} },
{ 'expiration' : null }
])
.or([
{ createdBy:userId },
{ 'bookmarked.id' : userId }
])

最佳答案

您可以使用 Query#and 将两个 $or 子句放入单个 $and 中。助手为:

var query =
Invite.find({ isActive:true })
.and([
{$or: [
{ 'expiration': {$gt: new Date()} },
{ 'expiration': null }
]},
{$or: [
{ 'createdBy': userId },
{ 'bookmarked.id' : userId }
]}
])

关于javascript - 当我需要用 and 子句分隔查询时, Mongoose 中有两个 "or"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789256/

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