У меня есть документ MongoDB как этотMongoDB включают нуль в запросе массива результатов
{
_id: ObjectId("53ea4bcb311164af033743fd")
"users": [
{
"name": "Paul"
"age": 36
},
null,
{
"name": "Steve",
"age": 74
}
]
}
Я не мог бы лучший выбор дизайна, но я решил использовать индекс массива в качестве userKey. Теперь я хотел бы улучшить производительность моих запросов и использовать только поля, необходимые в моей проекции запроса, поэтому запрос выглядит следующим образом:
db.accounts.findOne('53ea4bcb311164af033743fd', {'users.name': 1});
Это возвращает
{
_id: ObjectId("53ea4bcb311164af033743fd")
"users": [
{
"name": "Paul"
},
{
"name": "Steve"
}
]
}
Теперь есть ли способ от null
, так что индекс правильный? Я знаю, что это работает только с использованием проекции {'users': 1}
, но для меня это не очень хорошо, потому что в моем пользовательском объекте довольно много значений.
Спасибо Энрике! Ограничение на 16 МБ для меня не очень важно, потому что у каждого аккаунта есть свой собственный документ и пользователи, связанные с ним, и существует ограничение на максимальных пользователей. На данный момент я решил проблему, добавив ключи к пользователям и ссылаясь на них. Некоторый рефакторинг был необходим, но все же лучшее решение для моей проблемы, я думаю. – tn4foxxah