Reputation: 23
I want to assign key of $match dynamically as per my condition which I have given below:
let memberField = filter == "Agent" ? "user" : "admin"; // memberField = "user"
db.aggregate(
[
{
$match: {
memberField: "12345"
}
}
]
)
Here I'm not getting empty response.
But if I pass hardcode key to $match like given below:
db.aggregate(
[
{
$match: {
user: "12345"
}
}
]
)
Here I'm getting respective result.
So how do pass dynamic key?
Upvotes: 0
Views: 156
Reputation: 14402
Have a look at Computed property names
.
db.aggregate([
{
$match: {
[memberField]: "12345"
}
}
])
Upvotes: 1