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() }) })