MongoDB - действительно ли find () в реальном времени? - PullRequest
0 голосов
/ 09 апреля 2019

Используя пакет node-mongodb-native npm, в приложении node.js, если я получаю объект коллекции на раннем этапе в длительном асинхронном скрипте node.js, например:

var collection = await db.collection(collectionName);

Если коллекция будет изменена до того, как я выполню метод find() этого объекта коллекции, будут ли результаты find({}) текущими или будут отображаться только те данные, которые были на момент полученияобъект коллекции?

Например, предположим гипотетически, что через 10 минут сценарий попадает в строку, подобную этой:

let cursor = await collection.find({});

Дополнительно предположим, что в течение этого промежутка времени были добавлены элементы,удалены и изменены перед вызовом find().

Будет ли результирующий курсор перемещаться по текущим данным или данные будут такими, какими они были во время получения объекта сбора (в начале сценария)?

1 Ответ

1 голос
/ 09 апреля 2019

Я действительно сомневаюсь, что при получении снимка будет сделан снимок коллекции.

См .: https://docs.mongodb.com/manual/reference/method/db.getCollection/

Возвращаемое значение find будет курсором к текущему состоянию.

Будет ли результирующий курсор перемещаться по текущим данным или данные будут такими, какими они были в момент получения объекта сбора (в начале сценария)?

Результирующий курсор проходит через текущие данные.

...