ผมจะเขียน web app บน Node.js ให้ไปเปิด database ที่ใช้ MongoDB แต่ว่าเขียนไปแล้วงง function ที่มันซ้อนกันอย่างมาก ก็เลยหาตัวช่วยดูอยู่หลายอย่าง สุดท้ายคิดว่าใช้ Q น่าจะง่ายที่สุดก็เลยลองเขียนดู แต่ว่าเป็น command line นะ
var Q = require('q');
var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db;
var server = new Server('localhost', 27017, {auto_reconnect: true});
var db_ = new Db('annotedw', server, {safe: true});
Q.ncall(db_.open, db_).then(
function(db) {
return Q.ncall(db.collection, db, 'corpus');
}
)
.then(
function(coll) {
return Q.ncall(coll.findOne, coll);
}
)
.then(
function(item) {
console.log(item);
db_.close();
}
)
.fail(
function(err) {
console.log("Error: ", err);
}
);
ผม save ไฟล์ข้างบนไว้ใน mongotry.js
เวลาเรียกก็ใช้ node mongotry.js แล้วก็ได้ผลแบบข้างล่าง
{ _id: 508ec1e02ca65709fc00000c,
corpus_id: 12,
create: Fri Jan 01 2010 00:00:00 GMT+0700 (ICT),
name: 'KIN_1' }
มันก็พิมพ์ข้อมูลออกมา 1 item ตามต้องการ
12.681721
101.256032