1.模拟插入1条订单数据
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, function(err, db) {
if(err) throw err;
var dbo = db.db('koa'); // koa 库名
var obj = { _id: 1, product_id: 151, status: 1 }; // 模拟插入1条订单数据
dbo.collection('orders').insertOne(obj, function(err, res) {
if(err) throw err;
console.log('文档插入成功');
db.close();
})
});
2.模拟插入3条产品数据
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, function(err, db) {
if(err) throw err;
var dbo = db.db('koa'); // koa 库名
var obj = [
{ _id: 151, name: '笔记本电脑' },
{ _id: 152, name: '耳机' },
{ _id: 153, name: '台式电脑' }
]; // 模拟插入3条产品数据
dbo.collection('products').insertMany(obj, function(err, res) {
if(err) throw err;
console.log('插入的文档数量为: ' + res.insertedCount);
db.close();
})
});
3.表关联 -- aggregate
var MongoClient = require('mongodb').MongoClient;
var url = require('./config/keys').mongoURI;
/**
* 表关联
* aggregate
*/
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, function(err, db) {
if(err) throw err;
var dbo = db.db('koa'); // koa 库名
dbo.collection('orders').aggregate([ // 聚合函数
{
$lookup: {
from: 'products', // 右集合
localField: 'product_id', // 左集合 join 字段
foreignField: '_id', // 右集合 join 字段
as: 'order_details', // 新生成字段(类型array)
}
}
]).toArray(function(err, res) {
if(err) throw err;
console.log(JSON.stringify(res));
db.close();
})
});
.