var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, {useNewUrlParser: true}, function (err, db) {
if (err) throw err;
console.log('数据库已创建');
var dbo = db.db("runoob");
var co = dbo.collection("site");
//插入一条数据
// var myobj = {name: "菜鸟教程", url: "www.runoob.com"};
// co.insertOne(myobj, function (err, res) {
// if (err) throw err;
// console.log("文档插入成功");
// db.close();
// });
// //插入多条数据
// var myobj = [
// {name: '菜鸟工具', 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'},
// {name: 'F000', url: 'https://www.f000.com', type: 'en'},
// {name: 'Yukky', url: 'https://www.yukky.com', type: 'en'},
// {name: 'Baidu', url: 'https://www.baidu.com', type: 'en'}
// ];
// co.insertMany(myobj, function (err, res) {
// if (err) throw err;
// console.log("插入的文档数量为: " + res.insertedCount);
//
// db.close();
// });
//查询所有
// co.find({}).toArray(function(err, result) { // 返回集合中所有数据
// if (err) throw err;
// console.log(result);
// db.close();
// });
//按条件查询数据
// var whereStr = {"name": '菜鸟教程2'}; // 查询条件
// co.find(whereStr).toArray(function (err, result) {
// if (err) throw err;
// //注意: console.log("字符串 "+obj);输出的时候,对象会被转化为"[Object Object]"字符串
// console.log("数据库更新前的数据:",result);
// db.close();
// });
// //更新一条数据
// var whereStr = {"name": '菜鸟教程'}; // 查询条件
// var updateStr = {$set: {"url": "https://www.runoob.com"}};
// co.updateOne(whereStr, updateStr, function (err, res) {
// if (err) throw err;
// console.log("文档更新成功");
// db.close();
// });
// //更新多条数据
// var whereStr = {"type": 'en'}; // 查询条件
// var updateStr = {$set: {"url": "https://www.runoob.com"}};
// co.updateMany(whereStr, updateStr, function (err, res) {
// if (err) throw err;
// console.log(res.result.nModified + " 条文档被更新");
// db.close();
// });
//删除一条数据
// var whereStr = {"name": '菜鸟教程'}; // 查询条件
// co.deleteOne(whereStr, function (err, obj) {
// if (err) throw err;
// console.log("文档删除成功");
// db.close();
// });
//删除多条数据
// var whereStr = { "url": 'www.runoob' }; // 查询条件
// co.deleteMany(whereStr, function(err, obj) {
// if (err) throw err;
// console.log(obj.result.n + " 条文档被删除");
// db.close();
// });
// 排序
// var mysort = {type: 1};
// co.find().sort(mysort).toArray(function (err, result) {
// if (err) throw err;
// console.log(result);
// db.close();
// });
//分页limit():读取3条数据
// co.find().limit(3).toArray(function (err, result) {
// if (err) throw err;
// console.log(result);
// db.close();
// });
//skip(): 跳过前面1条数据,读取两条数据
// co.find().skip(1).limit(3).toArray(function(err, result) {
// if (err) throw err;
// console.log(result);
// db.close();
// });
//按条件查询数据
// var whereStr = {"name": '菜鸟教程1'}; // 查询条件
// co.find(whereStr).toArray(function (err, result) {
// if (err) throw err;
// console.log("数据库更新后的数据:" ,result);
// //console.log("注意: console.log(\"字符串 \"+obj);输出的时候,对象会被转化为\"[Object Object]\"字符串");
// db.close();
// });
});
$lookup 实现左连接
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, {useNewUrlParser: true}, function (err, db) {
if (err) throw err;
console.log('数据库已创建');
var dbo = db.db("runoob");
//第1个数据库
var co = dbo.collection("web1");
//插入多条数据
var myweb1 = [
{_id: 150, name: '菜鸟工具', url: 'https://c.runoob.com', type: 'cn'},
{_id: 160, name: 'Google', url: 'https://www.google.com', type: 'en'},
{_id: 170, name: 'Facebook', url: 'https://www.google.com', type: 'en'},
{_id: 180, name: 'F000', url: 'https://www.f000.com', type: 'en'},
{_id: 185, name: 'Yukky', url: 'https://www.yukky.com', type: 'en'},
{name: 'Baidu', url: 'https://www.baidu.com', type: 'en'}
];
co.insertMany(myweb1, function (err, res) {
if (err) throw err;
console.log("插入的文档数量为: " + res.insertedCount);
db.close();
});
//第2个数据库
var co = dbo.collection("orders1");
//插入多条数据
var myorders1 = [
{_id: 1, product_id: 150, status: 1},
{_id: 2, product_id: 160, status: 0},
{_id: 3, product_id: 170, status: -1},
{_id: 4, product_id: 180, status: 0},
{_id: 5, product_id: 185, status: 1}
];
co.insertMany(myorders1, function (err, res) {
if (err) throw err;
console.log("插入的文档数量为: " + res.insertedCount);
db.close();
});
//$lookup 实现左连接
dbo.collection('web1').aggregate([
{
$lookup:
{
from: 'orders1', // 右集合
localField: '_id', // 左集合 join 字段
foreignField: 'product_id', // 右集合 join 字段
as: 'orderdetails' // 新生成字段(类型array)
}
}
]).toArray(function (err, res) {
if (err) throw err;
console.log(JSON.stringify(res));
console.log(res);
db.close();
});
//删除集合
// dbo.collection("web1").drop(function (err, delOK) { // 执行成功 delOK 返回 true,否则返回 false
// if (err) throw err;
// if (delOK) console.log("集合已删除");
// db.close();
// });
// dbo.collection("orders1").drop(function (err, delOK) { // 执行成功 delOK 返回 true,否则返回 false
// if (err) throw err;
// if (delOK) console.log("集合已删除");
// db.close();
// });
});