我们将 objectIds 存储在文档中的数组中。
{
"members": [ ObjectId("a"), ObjectId("b"), ObjectId("c") ]
}
(存放会员ID)
现在我们得到参数中的成员列表来检查“或”条件以验证成员身份
memArray={"b","c","d"}
我们想要构建查询,如果 memArray 的任何一个成员出现在“成员”中,该查询将返回 true。在这种情况下,memArray 具有“成员”中存在的“b”,因此它应该是正匹配并返回 true。
您应该将
$elemMatch
与 $in
运算符一起使用。试试这个:
Query query = new Query();
query.addCriteria(Criteria.where("members").elemMatch(Criteria.in(memArray));
确保
members
数组和memArray
中元素的数据类型相同,要么是ObjectId
要么是String
。