我的数据如下所示:
"_id" : ObjectId("53a173630364206735975b35"),
"username" : "TestUserID",
"resources" : [
{
"id" : "FirstTestResourceId",
"tags" : [
"TestResourceTag1",
"TestResourceTag2"
],
}
{
"id" : "SecondTestResourceId",
"tags" : [
"TestResourceTag1",
"TestResourceTag2"
],
}
]
我想做的是检索用户的所有资源文档,其中任何标签与字符串数组的任何成员匹配。
当我做:
db.collection.find({username: 'TestUserID', 'resources.tags': { $in: ['TestResourceTag1']}})
它似乎工作正常(因为它用正确的资源子文档带回了正确的文档,但是当我在我的 java 类中尝试它时,它带回了 nada.
Iterable<Resource> resources = userCollection.find("{username: #, 'resources.tags': { $in: #}}", userID, tags).as(Resource.class);
其中 userID = String 和 tags = String[]
我想我在查询中做了一些模糊的事情,但我似乎无法在任何地方找到答案。
对于这个问题的任何指导,我将不胜感激。