node.js連線mongodb

m0_48919721發表於2020-12-27

MongoDB是一種文件導向資料庫管理系統,由C++撰寫而成。實現增刪改查功能步驟
建立資料庫
要在 MongoDB 中建立一個資料庫,首先我們需要建立一個 MongoClient 物件,然後配置好指定的 URL 和 埠號。
如果資料庫不存在,MongoDB 將建立資料庫並建立連線。
建立連線
var MongoClient = require(‘mongodb’).MongoClient;
var url = “mongodb://localhost:27017/runoob”;

MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log(“資料庫已建立!”);
db.close();
});

建立集合
我們可以使用 createCollection() 方法來建立集合:
建立集合
var MongoClient = require(‘mongodb’).MongoClient;
var url = ‘mongodb://localhost:27017/runoob’;
MongoClient.connect(url, function (err, db) {
if (err) throw err;
console.log(‘資料庫已建立’);
var dbase = db.db(“runoob”);
dbase.createCollection(‘site’, function (err, res) {
if (err) throw err;
console.log(“建立集合!”);
db.close();
});
});

資料庫操作( CURD )
與 MySQL 不同的是 MongoDB 會自動建立資料庫和集合,所以使用前我們不需要手動去建立。
插入資料
以下例項我們連線資料庫 runoob 的 site 表,並插入一條資料條資料,使用 insertOne():
插入一條資料
var MongoClient = require(‘mongodb’).MongoClient;
var url = “mongodb://localhost:27017/”;

MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db(“runoob”);
var myobj = { name: “aaaa”, url: “www.runoob” };
dbo.collection(“site”).insertOne(myobj, function(err, res) {
if (err) throw err;
console.log(“文件插入成功”);
db.close();
});
});
執行以下命令輸出就結果為:
$ node test.js
文件插入成功
從輸出結果來看,資料已插入成功。
我們也可以開啟 MongoDB 的客戶端檢視資料,如:

show dbs
runoob 0.000GB # 自動建立了 runoob 資料庫
show tables
site # 自動建立了 site 集合(資料表)
db.site.find()
{ “_id” : ObjectId(“5a794e36763eb821b24db854”), “name” : “aaaa”, “url” : “www.runoob” }

如果要插入多條資料可以使用 insertMany():
插入多條資料
var MongoClient = require(‘mongodb’).MongoClient;
var url = “mongodb://localhost:27017/”;

MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db(“runoob”);
var myobj = [
{ name: ‘bbbb’, url: ‘https://c.runoob.com’, type: ‘cn’},
{ name: ‘Google’, url: ‘https://www.google.com’, type: ‘en’},
{ name: ‘Facebook’, url: ‘https://www.google.com’, type: ‘en’}
];
dbo.collection(“site”).insertMany(myobj, function(err, res) {
if (err) throw err;
console.log("插入的文件數量為: " + res.insertedCount);
db.close();
});
});
res.insertedCount 為插入的條數。
查詢資料
可以使用 find() 來查詢資料, find() 可以返回匹配條件的所有資料。 如果未指定條件,find() 返回集合中的所有資料。
find()
var MongoClient = require(‘mongodb’).MongoClient;
var url = “mongodb://localhost:27017/”;

MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db(“runoob”);
dbo.collection(“site”). find({}).toArray(function(err, result) { // 返回集合中所有資料
if (err) throw err;
console.log(result);
db.close();
});
});
以下例項檢索 name 為 “aaaa” 的例項:
查詢指定條件的資料
var MongoClient = require(‘mongodb’).MongoClient;
var url = “mongodb://localhost:27017/”;

MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db(“runoob”);
var whereStr = {“name”:‘aaaa’}; // 查詢條件
dbo.collection(“site”).find(whereStr).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});

相關文章