我有幾個問題試圖找到一個特定的元素,它的數組內有一個特定的值。找到它的數組中的值元素mongo
因此,如果集合包含的對象是這樣的:
{
"_id" : ObjectId("53408df830044f6b43e64904"),
"_class" : "my.path.Team",
"name" : "a name",
"listOfIds" : [
ObjectId("535044b93004ed4738ba3192"),
ObjectId("535044b93004ed4738bc3185")
],
"anotherId" : ObjectId("535044b93003ed4738b9317e"),
"yetAnotherId" : ObjectId("535044a22004ed4738b93101")
}
,我需要找到具有內部listOfIds我想我可以用$ elemmatch一個specicific的ObjectId一個特定的元素,但它似乎不工作無內listOfIds項被命名的東西...
我使用
db.team.findOne({anotherId: aVariableInScope.anotherId, listOfIds: { $elemMatch: { aVariableInScope._id }} });
但其沒有工作,我所有的例子似乎找到點t Ø陣列它們構造,如:
"listOfIds" : [
"value": ObjectId("535044b93004ed4738ba3192"),
"value" :ObjectId("535044b93004ed4738bc3185")
],
,然後你可以使用:
db.team.findOne({anotherId: aVariableInScope.anotherId, listOfIds: { $elemMatch: { "value" : aVariableInScope._id }} });
你可以使用'$ all' - 'listOfIds:{$ all:{aVariableInScope._id}}' – tymeJV
這不會給我需要的東西。我想獲取listOfIds中所有的元素,其中aVariableInScope._id的值爲 – ricardoespsanto