Мне нужно получить все документы, где translations.proposedTranslation
существует, но translations.proposedTranslation.translator
нет, хотя бы в одном из объектов в массиве translations
.
Эти документы должны быть выбранным:
{
translations: [{
language: "spanish",
proposedTranslation: {
user: "123456789"
}
}]
}
//and
{
translations: [{
language: "spanish",
proposedTranslation: {
user: "123456789"
}
}, {
language: "french",
proposedTranslation: {
user: "123456789",
translator: "987654321"
}
}]
}
Этот должен не :
{
translations: [{
language: "spanish",
proposedTranslation: {
user: "123456789",
translator: "987654321"
}
}]
}
Вот что у меня есть:
$expr: {
$gte: [
{
$size: {
$filter: {
input: "$translations",
cond: {
$and: [
{
$ne: ["$$this.proposedTranslation", null]
},
{
$eq: ["$$this.proposedTranslation.translator", null]
}
]
}
}
}
},
1
]
}
Однако это не возвращает никаких документов.Я думаю, что это из-за $eq: ["$$this.proposedTranslation.translator", null]
, так как он работает, как и должно, если я пропущу эту строку.Есть ли что-то, что мне нужно изменить, так как это объект глубиной 3?