Что на самом деле делает db.bind с MongoDB? - PullRequest
0 голосов
/ 16 апреля 2020

Я установил mongoskin пакет, и это пример из npmjs

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/integration_tests", {native_parser:true});
db.bind('article');
db.article.find().toArray(function(err, items) {
        db.close();
});

Из github

 * @param {String} name the collection name
 * @param {Object} [options] collection options
 * @return {SkinCollection} collection
 */
SkinDb.prototype.bind = function (name, options) {
  return this[name] = this.collection(name, options);
}

Я даже больше путать с его примером (книга Азата Мардана)

db.bind('messages').bind({
  findOneAndAddText: function (text, fn) { // no fat arrow fn because we need to let bind pass the collection to use this on the next line... this can be replaced with db.messages too
    this.findOne({}, (error, document) => {
      if (error) {
        console.error(error)
        return process.exit(1)
      }
      console.info('findOne: ', document)
      document.text = text
      var id = document._id.toString() // We can store ID in a string
      console.info('before saving: ', document)
      this.save(document, (error, count) => {
        if (error) {
          console.error(error)
          return process.exit(1)
        }
        console.info('save: ', count)
        return fn(count, id)
      })
    })
  }
})

Зачем нам вторая привязка?

Что на самом деле делает привязка? Обязательная база данных служит для чего?

1 Ответ

1 голос
/ 16 апреля 2020

читать файл readme (https://github.com/kissjs/node-mongoskin):

пример из файла readme:

db.bind('article').bind({
    getByAuthor: function(author_id, callback) {
        this.findOne({author_id: author_id}, callback);
    }
});
db.article.getByAuthor(author_id, function(err, article) {
        console.log(article);
});

db.bind('xxx') - это коллекция (теперь вы можете использовать db.xxx).
после .bind({name: function(...)}) вы можете использовать db.xxx.name

Но это все написано в readme.

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