我想运行一个查询,它返回一个集合的所有元素,其中
wasProposed
和markedByUser
为真,recipientEmail
可以是email1@example.com
或email2@example.com
。在我的Java代码中,我创建了一个BasicDBObject
,其toString
会返回此内容:
{
"wasProposed" : true ,
"recipientEmail" :
{
"$or" :
[
{ "recipientEmail" : "email1@example.com" } ,
{ "recipientEmail" : "email2@example.com" }
]
},
"markedByUser" : true
}
当我运行此查询(rcoll.find(query).sort(sortclause).limit(ITEMS_TO_SHOW)
)时,收到错误com.mongodb.MongoException: invalid operator: $or
。
如何修改上述查询以消除此错误?
答案 0 :(得分:1)
在这里使用$in
代替$or
:
{
"wasProposed" : true ,
"recipientEmail" : { "$in" : ["email1@example.com", "email2@example.com"] },
"markedByUser" : true
}