Так что у меня есть некоторый код node.js, в котором есть листы $ in и $ nin для mongodb.
Список «$ nin» на самом деле намного больше, чем список «$ in».
На «моя реализация» я сделал это «легкий путь», пропусканием оба идентификатора списки MongoDB:
query = { _id: { $in: in_list, $nin: not_in_list } }
Мой коллега затем пришел, и удалил все «$ NIN» идентификаторы из «$ в» списке, и только запрашиваются $ в
in_list = _.difference in_list, not_in_list query = { _id: { $in: in_list } }
Мое предположение было бы, MongoDB достаточно умны, чтобы справиться с этим быстрее более эффективно, чем node.js, но я на самом деле не знаю, это отличается на самом деле измерима и/или значительна.
Любой вход?
Почему бы не проверить два подхода и сравнить производительность? – JohnnyHK
Я в надежде, что кто-то с хорошим опытом бенчмаркинга может просветить нас хорошим методом для сравнения. На данный момент я просто буду работать как 1000x каждый из них и сравнить, но я подозреваю, что это не будет «правильный путь»! – kroe
Что это в основном спустится, так это то, что лучше для хрустания чисел для вас. Отправка всех результатов по проводке для оптимизатора запросов, чтобы вывести разницу в списках или развить эту разницу в клиенте. Вероятно, это субъективно размер списков. Как насчет того, чтобы вы оценивали как ваши результаты, так и ваши ответы. Другие могут найти это полезным. Кстати, ваши комментарии откликаются на двух людей, которые, возможно, испытывают больше всего здесь. –