Задать вопрос
allishappy
@allishappy

Правильно ли я работаю с MongoDB?

Написал несколько простых функций для записи и изменения файлов в БД. Вот пример одной из них:
let  mongodb = require('mongodb'),
      MongoClient = mongodb.MongoClient,
      url = 'mongodb://localhost:27017/PlantsBot',

function addNewUser(MongoClient, collection, url, user) {
  MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    let users = db.collection(collection);
    users.insert(user, function(err, docs) {
      if (err) throw err;
      console.log('Пользователь успешно добавлен');
      db.close();
    });
  });
};


Остальные функции аналогичные. Я опять вызываю метод connect() у объекта MongoClient, а в самом конце вызываю db.close(). Только вместо insert() я вызываю find() или remove().

Нормально ли, что я постоянно открываю и закрываю соединение у MongoClient? Не бьёт ли это по производительности?
  • Вопрос задан
  • 829 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@Nc_Soft
Мне надо принести в дом 3 пакета с едой из магазина. Я выхожу, закрываю дверь, иду в магазин, покупаю пакет, несу домой, открываю дверь, заношу пакет и закрываю дверь. Потом повторяю это два раза.
Сразу принести пакеты мне религия не позволяет, ведь я с монго работаю.
Ответ написан
@lega
Не бьёт ли это по производительности?

Бьёт
Ответ написан
werty1001
@werty1001
undefined
Думаю как-то так:

var mongodb = require('mongodb'),
	MongoClient = mongodb.MongoClient,
	db;

	MongoClient.connect('mongodb://localhost:27017/PlantsBot', function(err, database) {
		if(err) throw err;

		db = database;

		// Стартуем если база загрузилась

	});

	db.collection('mycollection').find({}, function(err, docs) {
		...
	});
Ответ написан
VGrabko
@VGrabko
Golang, Php, Js
а вы не подскажите хотя бы примерно, как мне реализовать отдельные функции удаления и записи так, чтобы не подключаться к базе по много раз?


Паттерн «Репозиторий»
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы