Reputation: 5150
If $myDogsName
is in the array dogNamesOfWinnersArray
then myDogWins
should be true
if its not in the array it should be false
.
Is this even possible?
db.collection.aggregate([
{
$addFields: { myDogWins: { $myDogsName: [ "$dogNamesOfWinnersArray", [] ] } }
}
])
the array looks like
dogNamesOfWinnersArray: [
{
"name" : "jake",
"age" : 6,
"breed" : "Bulldog",
...
},
{
"name" : "fred",
"age" : 8,
"breed" : "Bulldog",
...
},
]
$myDogsName
is jake
so I expect myDogWins
to be true
Upvotes: 3
Views: 1478
Reputation: 14287
db.dogs.save( { _id: 1, name: "jake" } )
db.dogs.save( { _id: 2, name: "jake2" } )
db.dogs.aggregate( [
{
$addFields: {
dogNamesOfWinnersArray: {
$concatArrays: [ [ ], dogNamesOfWinnersArray ]
}
}
},
{
$addFields: {
myDogWins: { $in: [ "$name", "$dogNamesOfWinnersArray.name" ] }
}
},
{
$project: { dogNamesOfWinnersArray: 0 }
}
] )
The output:
{ "_id" : 1, "name" : "jake", "myDogWins" : true }
{ "_id" : 2, "name" : "jake2", "myDogWins" : false }
Upvotes: 0