私のデータは次のようになります。
"_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 = 文字列およびタグ = 文字列[]
クエリで何かぼんやりしていると思いますが、どこにも答えが見つからないようです。
この問題に関するガイダンスに最も感謝しています。