Spring Data MongoDB 数组匹配

问题描述 投票:0回答:1

我们将 objectIds 存储在文档中的数组中。

{
 "members": [  ObjectId("a"), ObjectId("b"), ObjectId("c") ]
}

(存放会员ID)

现在我们得到参数中的成员列表来检查“或”条件以验证成员身份

memArray={"b","c","d"} 

我们想要构建查询,如果 memArray 的任何一个成员出现在“成员”中,该查询将返回 true。在这种情况下,memArray 具有“成员”中存在的“b”,因此它应该是正匹配并返回 true。

mongodb spring-data spring-data-mongodb
1个回答
0
投票

您应该将

$elemMatch
$in
运算符一起使用。试试这个:

Query query = new Query();   
query.addCriteria(Criteria.where("members").elemMatch(Criteria.in(memArray));

确保

members
数组和
memArray
中元素的数据类型相同,要么是
ObjectId
要么是
String

© www.soinside.com 2019 - 2024. All rights reserved.