const MongoClient = require('mongodb').MongoClient const url = "mongodb://localhost:27017" const dbName = 'express-project' // 鏈接數據庫 MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => { if (err) throw err console.log('數據庫已鏈接') const db = client.db(dbName) // 建立集合 db.createCollection("user", (err, res) => { if (err) throw err console.log('成功建立集合') }) db.createCollection("alias", (err, res) => { if (err) throw err console.log('成功建立集合') }) // ----------------------插入一條數據 let user = db.collection("user") let alias = db.collection("alias") let myInfo = { name: '賈克斯', age: 18 } user.insertOne(myInfo, (err, res) => { if(err) throw err console.log('成功插入一條數據') }) alias.insertOne({_id: 1}, (err, res) => { if(err) throw err console.log('成功插入一條數據') }) // ----------------------插入多條數據, insertMany() let myFriends = [ { name: '菲奧娜', age: 20 }, { name: '傑斯', age: 19 }, { name: '弗拉基米爾', age: 25} ] user.insertMany(myFriends, (err, res) => { if(err) throw err console.log(`成功插入${res.insertedCount}條數據!`) }) // ----------------------查詢數據, find(condition) user.find({ name: '賈克斯' }).toArray((err, docs) => { console.log('有以下數據:') console.log(docs) }) // ----------------------多表聯查,左鏈接查詢 user.aggregate([ { $lookup:{ from: 'alias', //左查詢集合 localField: 'alias_id', // 本地字段 foreignField: '_id', // 對應本地字段的左查詢集合字段 as: 'userlist' } } ]).toArray((err, docs) => { if (err) throw err var jsonDoc = JSON.stringify(docs) console.log(jsonDoc) }) // ----------------------更新單條數據 alias.updateOne({ "_id": 1 }, {$set:{ "alias": "武器大師"}}, (err, res) => { if (err) throw err console.log("文檔更新成功") }) // ----------------------更新多條數據 user.updateMany({ "age": 18 }, { $set: { "relationship": "opponent"}}, (err, res) => { if (err) throw err console.log(`${res.result.nModified}條文檔被更新了`) }) // ----------------------刪除單條數據 user.deleteOne({name: "傑斯"}, (err, res) => { if (err) throw err console.log(`已刪除`) }) // ----------------------刪除多條數據 user.deleteMany({age: 18}, (err, res) => { if (err) throw err console.log('已刪除'); }) // ----------------------刪除一個集合 user.drop((err, res) => { if (err) throw err; console.log('已刪除集合') client.close() }) })