MongoError: неизвестное имя этапа конвейера: '$ changeStream'

Мы получаем эту ошибку:

   MongoError: Unrecognized pipeline stage name: '$changeStream'
        at queryCallback (/Users/alexamil/WebstormProjects/nabisco/cdt-now/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:244:25)
        at /Users/alexamil/WebstormProjects/nabisco/cdt-now/node_modules/mongodb/node_modules/mongodb-core/lib/connection/pool.js:544:18
        at _combinedTickCallback (internal/process/next_tick.js:131:7)
        at process._tickDomainCallback (internal/process/next_tick.js:218:9)

У нас есть этот файл, который обновит некоторые кеши на нашем сервере:

'use strict';

import caches = require('../../models/caches');

import {Phase, Acquisition, Category, FunctionalGroup, Role, User, Workstream} from "../../models";

Acquisition.watch().on('change', function (c) {
  console.info('acq change:', c);
});

Category.watch().on('change', function (c) {
  console.info('category change:', c);
});

FunctionalGroup.watch().on('change', function (c) {
  console.info('functional team change:', c);
});

Role.watch().on('change', function (c) {
  console.info('role change:', c);
});

User.watch().on('change', function (c) {
  console.info('user change:', c);
});

Workstream.watch().on('change', function (c) {
  console.info('workstream change:', c);
});

мы переходим с Mongo 2.6 на Mongo 3.4, поэтому в некоторых наших данных могут отсутствовать поля.

Кто-нибудь знает, как исправить эту ошибку?

Сейчас мы используем мангустовую версию 5.0.16.

На основе официальный документ: Вы можете открыть поток изменений только для наборов реплик или сегментированных кластеров. Вы выполнили требование?

Leo Li 23.04.2018 22:09

да, я подключен к набору реплик

Alexander Mills 23.04.2018 22:11
Документы говорит, что потоки изменений - это New in version 3.6.
JohnnyHK 23.04.2018 22:12

И я не уверен, что мангуст уже полностью развернул эту функциональность. Исходя из документа, его следует использовать как генератор. Но меня действительно интересует такой вариант использования с прослушивателем событий, поскольку он довольно новый.

Leo Li 23.04.2018 22:19

Ооо, мне нужно быть на Mongo 3.6, а не на Mongo 3.4

Alexander Mills 23.04.2018 22:24

Ну ... в основном добавлено начиная с Mongo 3.6 ... Теперь работает?

Leo Li 24.04.2018 00:09

Мы не можем перейти на 3.4, потому что мы застряли на 3.4 в производстве. Но у меня есть библиотека, которая читает из журнала операций (она использует потоки изменений TMK, но, похоже, работает) ... github.com/ORESoftware/oplog.rx .... нам придется использовать Model.watch () позже в будущем.

Alexander Mills 24.04.2018 00:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
2 507
1

Ответы 1

Потоки изменений появились в MongoDB 3.6. Если вы используете MyModel.watch() в mongoose при подключении к более старой версии сервера MongoDB, вы получите эту ошибку.

Другие вопросы по теме