Следующий запрос может дать нам ожидаемый результат:
db.collection.aggregate([
{
$project:{
"OrderExists":{
$cond:[
{
$ne:[
{
$arrayElemAt: ["$orderDetails.movieName", 0]
},
undefined
]
},
1,
0
]
}
}
}
]).pretty()
Набор данных:
{
"_id" : ObjectId("5d837db4fb35a835fbd8638f"),
"code" : "TICKET1234",
"orderDetails" : [
{
"cost" : 150,
"movieName" : "avengers"
}
]
}
{
"_id" : ObjectId("5d837db4fb35a835fbd86390"),
"code" : "TICKET1235",
"orderDetails" : [ ]
}
Выход:
{
"_id" : ObjectId("5d837db4fb35a835fbd8638f"),
"OrderExists" : 1
}
{
"_id" : ObjectId("5d837db4fb35a835fbd86390"),
"OrderExists" : 0
}