ทำไมเราถึงควรใช้ MongoDB native แทน Mongoose

9 February, 2019, By Tar Jarupong

โดยปรกติแล้วเราจะเห็นบทความส่วนใหญ่ จะเป็น NodeJS + Mongoose ซึ่งถ้าถามว่าดีมั๊ย?​ มันก็ดีแต่สิงที่จะประสบพบเจอก็คือเรื่อง performance

FindOne Find
ZUiNwsA.png 2487u8h.png

Insert InsertMany
gohqOjl.png abX1IC7.png

เราจะเห็นว่าตัว Op/sec ของตัว Mongoose ทำงานช้ากว่า MongoDB native เร็วกว่า 2 เท่า

แต่!!

ทำไมเราถึงยังใช้ Mongoose อยู่ นั้นก็เพราะว่า Mongoose มันออกแบบมาแก้ปัญหาเรื่อง Callback ใน MongoDB native ยังไงล๊าเราลองมาดูโค๊ดกัน


Mongoose

 const mongoose = require('mongoose');

    const mongoDB = 'mongodb://127.0.0.1/my_database';
    mongoose.connect(mongoDB);

    mongoose.Promise = global.Promise;
    const db = mongoose.connection;

MongoDB Native

 const MongoClient = require('mongodb').MongoClient;
    const url = "mongodb://localhost:27017/mydb";

    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      db.close();
    });

ทุกคนก็จะเห็นว่า ตัว MongoDB native มันเป็น callback ซึ่งมันจะเกิด callback hell ในที่สุดถ้าเรามีการทำ operation กับ MongoDB มาขึ้น แล้วเราจะแก้ไขยังไงดี นั้นสิทำยังไงดีล่ะครับท่านผู้ชม พอดีผมขี้เกียจเขียนต่อแล้วค่อยมาต่อคราวหน้านะขอรับ

Ref:

performance-difference-in-mongoose-vs-mongodb