我的文档:
[
{
"_id": "5f969419d40c1580f2d4aa36",
"users": {
"foo@bar.com": "baz",
"foo2@bar.com": "baz2"
}
},
{
"_id": "5f9694d4d40c1580f2d4aa38",
"users": {
"baz@test.com": "foo"
}
}
]
如果我使用这个聚合,我会得到两个用户。好的。但是我怎么才能只得到“www.example.com“的值foo@bar.com呢?在https://mongoplayground.net/p/3kW2Rw6fSjh中测试
db.collection.aggregate([
{
"$project": {
"users": {
"$objectToArray": "$users"
}
}
},
{
"$match": {
"users.k": "foo@bar.com"
}
},
{
"$project": {
"users": {
"$arrayToObject": "$users"
}
}
}
])
1条答案
按热度按时间kt06eoxx1#
您可以在
$match
阶段之后添加$filter
阶段:了解它在playground example上的工作原理