美文网首页
Nodejs学习笔记(七)

Nodejs学习笔记(七)

作者: cab240f6e992 | 来源:发表于2017-11-29 18:41 被阅读0次

通过Nodejs操作MongoDB

安装MongoDB

安装MongoDB

Install MongoDB Driver

npm install mongodb

引入MongoDB Driver

var mongo = require('mongodb');

通过Nodejs创建MongoDB数据库

1.创建Demo文件:touch createMongodbDemo.js

2.在文件中写入:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

3.运行该文件:node createMongodbDemo.js
可以在控制台看到:

image.png

4.注意,此时如果在连接了mongo之后,控制台运行show databases是看不到创建的mydb这个数据库的,因为该数据库里没有collections,目前只能看到adminlocal两个数据库

通过Nodejs创建Collection

1.将createMongodbDemo.js中的代码改写如下,使用db.createCollection来创建collection:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    db.createCollection("customers", function(err, res) {
        if (err) throw err;
        console.log("Collection created");
        db.close();
    })
})

2.运行该文件:node createMongodbDemo.js

image.png

3.验证是否创建成功了:

  • 进入mongo: mongo

  • 显示数据库: show databases

    image.png
    说明之前的mydb数据库成功创建了
  • 进入mydb数据库:use mydb

  • 显示collections: show collections

    image.png
    说明collection创建成功

插入一条数据

1.将代码改写如下,通过insertOne方法进行插入:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var myObj = {
        name: 'wilson',
        age: 22
    }
    db.collection("customers").insertOne(myObj, function(err, res) {
        if (err) throw err;
        console.log("Insert successfully");
        db.close();
    })
})

2.运行代码

3.切换到mydb数据库: use mydb

4.查询customers collection中是否插入成功: db.customers.find().pretty()

image.png

插入多条数据

1.将代码改写如下,通过insertMany方法进行插入:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var myObjs = [
        {
            name: 'wilson',
            age: 22
        },
        {
            name: 'kathy',
            age: 21
        },
        {
            name: 'curry',
            age: 28
        }
    ]
    db.collection("customers").insertMany(myObjs, function(err, res) {
        if (err) throw err;
        console.log("Insert successfully");
        db.close();
    })
})

2.运行代码

3.查询customers collection中是否插入成功: db.customers.find().pretty()

查询一条数据

1.将代码改写如下,通过findOne方法来进行查找:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    db.collection("customers").findOne({"name": "kathy"}, function(err, res) {
        if (err) throw err;
        console.log(res.age);
        db.close();
    })
})

输出了找到的那条记录的age。

查询多条数据

1.将代码改写如下,通过find方法来进行查找:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    db.collection("customers").find({}).toArray(function(err, res) {
        if (err) throw err;
        console.log(res);
        db.close();
    })
})

当查询条件为空时,会得到所有的记录。

image.png

2.如果我希望只显示某些字段该如何处理?比如我不想显示_id
通过find方法的第二个参数来设置显示的字段,将上面的代码改写为:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    db.collection("customers").find({}, {"_id": false}).toArray(function(err, res) {
        if (err) throw err;
        console.log(res);
        db.close();
    })
})

这里{"_id": false}就可以不返回_id字段。

image.png

对查询到的数据进行排序

1.将代码改写如下,通过sort方法来进行排序:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var mySort = { age: 1 };
    db.collection("customers").find().sort(mySort).toArray(function(err, res) {
        if (err) throw err;
        console.log(res);
        db.close();
    })
})

var mySort = { age: 1 };表示按照age字段的升序进行排序。如果希望降序进行排序,只需要将1改成-1。

相关文章

  • Nodejs学习笔记(七)

    通过Nodejs操作MongoDB 安装MongoDB 安装MongoDB Install MongoDB Dri...

  • 2018-08-21nodejs

    Nodejs学习笔记 一、 NodeJs介绍 什么是NodeJS,在应用程开发中起什么作用? Nodejs是一个应...

  • Nodejs学习笔记-Nodejs介绍

    什么是Node.js 编写高性能网络服务器的JavaScript工具包(用js开发服务端程序)单线程、异步、事件驱...

  • nodejs学习笔记

    JavaScript模块编译 在编译过程中,node对获取的JavaScript文件内容进行了头尾包装。正常的Ja...

  • nodejs学习笔记

    模块 名词解释:每一个js文件就是一个模块,而文件路径就是模块名。每个模块(也就是每个js文件)都有requir,...

  • Nodejs学习笔记②

    写在前面 这次做一个小小的登陆&注销登陆功能练习下所学的知识,并扩充些新知识。 目录 新建 login 项目 下载...

  • Nodejs学习笔记①

    写在前面 undefined 目录 检查更新node&npm版本 安装Express 4.x Express 4....

  • nodejs学习笔记

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • Nodejs学习笔记

    Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。nodejs由以下模块组成:引...

  • NodeJS 学习笔记

    NodeJS使用 CommonJS 模块系统。整个项目都是由一个个模块组成的,模块的存在形式是文件,他们一一对应。...

网友评论

      本文标题:Nodejs学习笔记(七)

      本文链接:https://www.haomeiwen.com/subject/hmzfbxtx.html