У меня есть коллекция MongoDB под названием Users. Я не знаю типов объектов заранее. Эта коллекция имеет не менее 3 различных типов объектов. Например:MongoDb выбрать различные типы объектов в коллекции
Тип 1:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f0",
"userid" : 6711,
"registerDate" : "2014-10-28T14:42:06",
"lastLoginDate" : "2014-10-28T14:42:06",
}
Тип 2:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f1",
"userid" : 6712,
"email" : "[email protected]",
"username" : "john doe",
}
Тип 3:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f2",
"userid" : 63713,
"city" : "orange",
"state" : "new york",
"country" : "US",
}
Как я могу получить различные типы (или верхний первый объект из каждой типа) из моей коллекции? Итак, если у меня 1 миллион пользователей и 3 различных структуры выше, я хотел бы получить 3 результата.
К сожалению, у меня нет прав на изменение в базе данных, только для чтения. Я просто не могу сделать это по запросу? –
Нет эффективного способа сделать это в отношении миллионов пользователей. Если вы можете создать новую коллекцию, вы можете создать суррогатное поле типа в новой коллекции через MAP, выполнив сортировку названий полей документа, а затем группу по этому полю. Вам все еще нужно поле 'type', но вы можете сделать это, создав новую коллекцию. Но это очень неэффективно. –