nodeJSでは、mogdbを利用してデータベース操作を行います.
引用が必要なnode_modules
一.初期化mogdb.
オブジェクトからconnectメソッドを呼び出してデータベース接続を取得します.注意connectメソッドはデフォルトで5つのデータベース接続を含む接続を作成します.
二.CRUD操作.
すべての操作でパラメータのデータフォーマットはBSON形式です.
1.クエリ文
2.語句を挿入する
3.更新操作
4.削除操作
三.注意
nodeJSは非同期ですから.だから、データベースを操作する時に、前の段階で得られた結果を次の操作に伝える必要があるなら、これらの操作に対して一定の処理を行う必要があります.
解決策
入れ子文
npm install mongodb
ここで参照しているmongodbモジュールのバージョンは1.4.12です.一.初期化mogdb.
var mongodb = require('mongodb');
var MongoClient = require('mongodb').MongoClient;
var db;
var util = require('util');
// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/threepigs", function(err, database) {
if(err) throw err;
db = database;
});
まず、mongodbモジュールを参照して、MongoClientオブジェクトを獲得します.オブジェクトからconnectメソッドを呼び出してデータベース接続を取得します.注意connectメソッドはデフォルトで5つのデータベース接続を含む接続を作成します.
二.CRUD操作.
すべての操作でパラメータのデータフォーマットはBSON形式です.
1.クエリ文
db.collection(tableName).find({'XXXX': xxxx},{sort: {'XXXX': 1}}).toArray(function(err, docs) {
if (err) throw err;
return ;
});
find関数を使用して、ドキュメントの内容を調べます.find()の最初のパラメータはクエリーパラメータです.2番目のパラメータは結果セットに対して操作します.2.語句を挿入する
db.collection(tableName).insert( {'XXXX': xxxx}, {w:1}, function(err, objects) {
if (err) throw err;
});
insert関数を使ってドキュメントを挿入します.insert()最初のパラメータは挿入されたデータです.3.更新操作
db.collection(tableName).update({'XXXX': xxxx}, {$set: {'XXXX': xxxx}}, {w:1,upsert:true}, function(err) {
if (err) console.warn(err.message);
});
udate関数を使ってドキュメントを更新します.最初のパラメータは更新されたデータで、setパラメータは更新されたドキュメントを検索します.アップロード:trueマークは、setパラメータが該当するドキュメントに検索されていない場合、新規に作成します.4.削除操作
db.collection(tableName).remove( {'XXXX': xxxx} ,{w: 1}, function(err, docs) {
if (err) throw err;
});
remove()メソッドを使ってドキュメントを削除します.remove()最初のパラメータは、ドキュメントを削除するための指定条件です.三.注意
nodeJSは非同期ですから.だから、データベースを操作する時に、前の段階で得られた結果を次の操作に伝える必要があるなら、これらの操作に対して一定の処理を行う必要があります.
db.collection(tableName).update({'XXXX': xxxx}, {$set: {'XXXX': xxxx}}, {w:1,upsert:true}, function(err) {
if (err) console.warn(err.message);
});
db.collection(tableName).remove( {'XXXX': xxxx} ,{w: 1}, function(err, docs) {
if (err) throw err;
});
このような並列操作は問題があります.前の操作の結果はまだ戻っていないので、nodeJSは次のステップに進みました.解決策
入れ子文
db.collection(tableName).update({'XXXX': xxxx}, {$set: {'XXXX': xxxx}}, {w:1,upsert:true}, function(err) {
if (err) console.warn(err.message);
db.collection(tableName).remove( {'XXXX': xxxx} ,{w: 1}, function(err, docs) {
if (err) throw err;
});
});
次のステップに必要な操作を前のステップのコールバック関数に置いて、順番に実行することを保証しますが、入れ子が必要な数が非常に大きい場合は、非常に面倒です.