jongo查找带有数组值的子文档

时间:2014-06-18 13:49:18

标签: mongodb jongo

我的数据如下:

"_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 []

我想我在查询中做了一些暗淡的事情,但我似乎无法在任何地方找到答案。

我非常感谢有关此问题的任何指导。

1 个答案:

答案 0 :(得分:0)

List<String>变量使用tags而不是字符串数组,而不是

String[] tags = new String[]{"TestResourceTag1"};

尝试使用

List<String> tags = Arrays.asList("TestResourceTag1");

希望这有帮助。