Скажем, у меня есть коллекции документов пользователя, индексированные по электронной почте. Учитывая список адресов электронной почты, мне нужно:MongoDB Учитывая список ключей, получите все соответствующие документы и создайте новые документы для несоответствующих ключей.
1. Get each User doc whose email is in that list
2. Create a new User doc for each email in the list for which no User exists.
можно легко решить первую проблему с $ в запросе, но я надеялся, что там был какой-то способ, чтобы получить $ в запросе, чтобы вернуть список которые не найдены в БД. Затем я могу эффективно вставлять новые документы. В противном случае мне нужно зациклиться на документах, чтобы найти, какие письма не были подняты.
Каков наиболее эффективный способ выполнить обе указанные задачи? Есть ли быстрый способ пакетного ввода новых пользовательских документов из набора уникальных писем?
Удивительный, это путь, по которому я спускался. Как изменится ваш ответ, если я захочу вернуть весь документ для соответствия пользователям? – jcksncllwy
хорошо, нет много. Просто сделайте все данные. Таким образом, запрос не будет покрыт, но если вам нужны данные, вам это нужно. На шаге 2 вы можете действовать по-прежнему, только когда вы выполняете заданный вычитание, вам нужна простая проекция, такая как 'x -> x.email'. – mnemosyn