Как установить 'cursorTimeoutMillis', используя mongoose - PullRequest
0 голосов
/ 18 октября 2018

Я использую mongoose (4.13.10) на сервере nodeJs для подключения к экземпляру mongodb, используя

mongoose.createConnection('mongodb://user:pass@localhost:27017/mydb')

Я использую курсоры для перебора записей в моей базе данных и выполнения нескольких запросов кбаза данных, которая занимает много времени, и поэтому я получаю Cursor not found исключений.Я обнаружил, что это происходит из-за простоя тайм-аута курсоров, который соответствует моим наблюдениям.

Теперь я не хочу отмечать nocursortimeout как истину и вместо этого установить тайм-аут на какое-то высокое значение, которым я являюсьуверен, что долгосрочные запросы будут выполнены.Но я не могу найти какую-либо документацию или руководство по настройке параметра сервера cursorTimeoutMillis.

Как мне установить этот параметр?Если возможно, я бы хотел установить его для определенного курсора, а не для всего соединения.Возможно ли это?

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете установить опцию cursorTimeoutMillis, используя mongodb-native-client, например:

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017/test', (err, db) => {
  // Use the admin database for the operation
  const adminDb = db.admin();

  // Set the cursor timeout millis option
  adminDb.command({
    setParameter: 1,
    cursorTimeoutMillis: <num>
  }, function(err, info) {
    // Close the connection
    db.close();
  });
});

Из mongoose, например:

YourModel.db.db.admin().command({}, (err, res) => {
    console.log(res);
});

Toустановите его непосредственно при запуске базы данных:

mongod --setParameter cursorTimeoutMillis=300000

Документы

http://mongodb.github.io/node-mongodb-native/2.0/api/Admin.html#command

Как запустить raw mongoDBкоманды, использующие мангуста?

https://docs.mongodb.com/manual/reference/parameters/#param.cursorTimeoutMillis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...