MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

запитване на колекция без предаване на схема в mongoose

От началната страница на Mongoose:

Mongoose предоставя директно, базирано на схеми решение за моделиране на данните от приложението ви и включва вградено привеждане на типове, валидиране, изграждане на заявки, куки за бизнес логика и много други.

Mongoose не може да направи извод от колекция от потенциално уникални документи за схема. MongoDB не налага схема върху документите, които се съхраняват в колекция.

И така, Mongoose добавя слой върху родния драйвер на NodeJS (тук), който мнозина намират за по-продуктивен. Не е задължително да се използва с MongoDB, когато се използва Node.JS.

Mongoose се нуждае от две основни неща, за да работи:

  1. Схема ==това дефинира структурата на документа (справка). Можете да добавяте валидиране, нови методи, да добавяте виртуални свойства, да използвате типове данни, да установявате препратки към други колекции (модели).
  2. Model ==това е класът, който след това се използва по време на изпълнение за изразяване на заявки към колекции (референтни). Дефиниция на схема се използва за изграждане на модел.

И така, както видяхте в пробата, която поставихте, има коте Schema дефиниран и след това Model Kitten е създаден. Хубавото при използването на схема и модел е, че след това Mongoose налага свойствата/полета, които са налични.

Вие дефинирате само Schema s и Model s веднъж в приложение. Така че, обикновено при стартиране на приложението, ще трябва да изпълните код, за да ги дефинирате, и след това да използвате Model екземпляри според нуждите през целия жизнен цикъл на приложението.

Има още много причини, поради които бихте искали да използвате Mongoose потенциално.

Въпреки това сте напълно прав, можете просто да използвате нещо по-пряко, без схема, като използвате драйвера, който е типичен за NodeJS. Синтаксисът би бил подобен на този, който показахте, но малко по-сложен:

MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
  if(err) { return console.dir(err); }

  var collection = db.collection('kittens');

    collection.find().toArray(function(err, kittens) {
        // here ...
    });    
});

Вместо простото:

Kitten.find(function(err, kittens) {

});

Освен това, когато използвате Mongoose, може да откриете, че писането на по-сложни заявки е по-лесно за писане и четене:

Kitten.find().where('name', 'Harold').exec(/*callback*/);

Бих предложил да прочетете повече от документацията, за да получите по-добро усещане за рамката и дали тя отговаря добре на вашите нужди. За съжаление документацията е малко разпръсната, но ако преминете през подзаглавията на Guide заглавие, ще разполагате с много добра информация.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $stdDevPop

  2. MongoDB-as-a-Service в Канада

  3. MongoDB $acos

  4. Защо MongoDB – 10 причини да научите MongoDB за 2022 г

  5. MongooseError [MongooseServerSelectionError]:връзката <монитор> към 52.6.250.237:27017 затворена