mongod

安装配置

Mongodb官网下载最新版本的Mongodb下载地址

下载msiwindow安装包,可以装到C盘或者D盘目录下

配置

由于我是安装在D盘的环境下

  1. D:\Program Files (x86)\MongoDB\Server\3.2\bin

所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行mongod --dbpath x路径x,路径可以是任何地方,我这里选择在D盘的MongoDB目录下,当然路径不要包含特殊的字符串,比如Program Files (x86)也不行

  1. mongod --dbpath D:\mongodb\data\db

命令

  1. mongo 进入mongo环境
  2. show dbs :查看当前的数据库列表
  3. show collections:查看当前库当中的集合列表
  4. use 数据库名 使用指定的库
  5. db:查看当前所在的数据库
  6. db.dropDatabase:删除当前的数据库
  1. use 数据库名: 新增数据库
  2. db.集合名,insert({name:"zxr"}) //新增一个集合里面的文档{name:"zxr"}
  3. db.score.insert({userName:"xiaozhang"}):的score集合当中增加了一个文档
  4. mongoimport --db scoreList --collection score --file E:\1924\Lession04\data --drop
  5. --db:指定数据库
  6. --collection:指定集合
  7. --file:指定导入的文件
  8. --drop:可省略。如果使用该属性则是覆盖,否则是追加。
删 remove
  1. db.data.remove({}) : 删除所有文档
  2. db.data.remove({name:"997"}) : 删除name:"997"
  3. db.data.remove({age:{$gte:16}},{justOne:true}):删除年龄大于等于16的符合条件的第一个文档。
改 update
  1. db.data.update({name:"zhangsan"},{age:10}) 完整替换 把{name:"zhangsan"}的文档替换成{age:10}的文档
  2. db.data.update({userName:"王五"},{$set:{sex:"女"}}) :将名字为王五的性别修改为女
  3. db.data.update({sex:"男"},{$set:{age:18}}):只能修改一条。
  4. db.data.update({sex:"女"},{$set:{age:16}},{multi:true}):更改多条。
  5. db.data.update({userName:"二哈"},{$inc:{age:1}}):根据条件,将年龄加1
查 find
  1. db.集合名.find() : 查找当前库下集合名的文档列表
  2. db.集合名.count():指定集合文档数量
  3. db.集合名.find().count() : 根据条件查找数量
  4. db.集合名,find({name:"zxr"}) :查找namezxr的数据
  5. db.集合名.find({sex:"女"})):查找性别为女的集合。
  6. db.集合名.find({userName:/常/}):模糊查找。查找名字当中包含常
  7. db.集合名.find({"score.yuwen":2}):查找语文成绩为2的文档
  8. db.集合名.find({age:{$gt:12}}):查找年龄大于12
  9. $gt:大于
  10. $gte:大于等于
  11. $lt:小于
  12. $lte:小于等于
  13. $ne
  14. db.集合名.find({age:{$ne:12},sex:"女"}):多条件,年龄不等于12,性别为女

  15. db.集合名.find({$or:[{sex:"女"},{age:12}]}):查找性别为女,或年龄为12的记录
  16. db.集合名.find().skip(2):跳指指定的文档数(
  17. 跳过前两行文档)
  18. db.集合名.find().limit(3):取指定的文档数(取前三行文档)
  19. db.集合名.find().sort({age:-1}):按照年龄的倒序。1正序,-1倒序
  20. db.集合名.find().sort({age:-1,"score.yuwen":1}):按照年龄的倒序,如果年龄相同,按照语文的正序
分页
  1. 已知:
  2. 1pageIndex:指定的页数
  3. 2count:文档数量
  4. 3pageSum:总页数 pageSum = Math.ceil(count/pageNum)
  5. 4pageNum:每页显示的条数
  6. 求:
  7. 每页要显示的内容。
  8. 问:总条数9,每页2条,每一页的内容如何求
  9. skip = (pageIndex-1)*pageNum;
  10. 1 db.score.find().sort({age:-1}).skip(0).limit(2)
  11. 2 db.score.find().sort({age:-1}).skip(2).limit(2)
  12. 3 db.score.find().sort({age:-1}).skip(4).limit(2)
  13. 4 db.score.find().sort({age:-1}).skip(6).limit(2)
  14. 4 db.score.find().sort({age:-1}).skip(8).limit(2)

node 操作数据库

初始化

  1. npm init -y

下载mongodb

  1. npm install mongodb -S
  2. cnpm install mongodb -S

引入

  1. const mongodb = require("mongodb");
  2. const mongoClient = mongodb.MongoClient;// 端,可以连接数据库。从而实现对数据的操作
  3. mongoClient.connect("mongodb://127.0.0.1:27017",function(err,client){
  4. client.db();// 指定你要操作的数据库
  5. })

挂载数据库

  1. 创建一个文件夹 mongo

  2. mongod --dbpath

  3. 挂载将cmd最小化

  4. http://127.0.0.1:27017

    1. 结果:It looks like you are trying to access MongoDB over HTTP on the native driver port.

1.连接数据库

  1. var MongoClient = require('mongodb').MongoClient;
  2. //结尾是选择数据库名
  3. var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
  4. MongoClient.connect(DB_CONN_STR, function(err, db) {
  5. console.log("连接成功!");
  6. });

2.查询数据

注意查询回来的结果需要toArray来遍历处理

  1. var MongoClient = require('mongodb').MongoClient;
  2. var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
  3. MongoClient.connect(DB_CONN_STR, function(err, db) {
  4. console.log("连接成功!");
  5. //选中age集合,并用find方法把结果集拿回来进行处理
  6. db.collection("age").find({title: "cba"}).toArray(function(err, result) {
  7. if (err) {
  8. console.log('Error:' + err);
  9. return;
  10. }
  11. console.log(result);
  12. });
  13. });

经过测试,读取大于100条的时候会出现报错官网解释,可以尝试用forEach代替

  1. db.collection('pokemon').find({})
  2. .forEach(function(item){
  3. console.log(item)
  4. })

查询ID

查询自动生成的ObjectId

  1. var ObjectId = require('mongodb').ObjectId;
  2. let _id = ObjectId("5bcae50ed1f2c2f5e4e1a76a");
  3. db.collection('xxx').find({
  4. "_id": _id
  5. }).forEach(function (item) {
  6. console.log(item)
  7. })

3.插入数据

insert函数第一个参数是需要插入的值(可以一个也可以多个),第二个参数是接受一个回调函数,当值插入成功后回返回插入值得一些关键信息,比如_id

  1. var MongoClient = require('mongodb').MongoClient;
  2. var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
  3. MongoClient.connect(DB_CONN_STR, function(err, db) {
  4. console.log("连接成功!");
  5. const db = client.db("demo");
  6. db.collection("age").insert([
  7. {
  8. title: "插入的值A"
  9. }, {
  10. title: "插入的值B"
  11. }
  12. ], function(err, result) {
  13. if (err) {
  14. console.log('Error:' + err);
  15. return;
  16. }
  17. console.log(result)
  18. })
  19. });

4.更新数据

注意如果不加$set就是完全替换原来的那份(没有设置的属性值将会丢失),加上$set则只是更新对应的属性值,其余不做改变

  1. var MongoClient = require('mongodb').MongoClient;
  2. var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
  3. MongoClient.connect(DB_CONN_STR, function(err, db) {
  4. console.log("连接成功!");
  5. db.collection("age").update({
  6. "_id": 1
  7. }, {
  8. $set: {
  9. title: "你好,世界",
  10. skill: "js"
  11. }
  12. }, function(err, result) {
  13. if (err) {
  14. console.log('Error:' + err);
  15. return;
  16. }
  17. //console.log(result);
  18. });
  19. });

5.删除数据

  1. var MongoClient = require('mongodb').MongoClient;
  2. var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
  3. MongoClient.connect(DB_CONN_STR, function(err, db) {
  4. console.log("连接成功!");
  5. db.collection("age").remove({
  6. "_id": 1
  7. }, function(err, result) {
  8. if (err) {
  9. console.log('Error:' + err);
  10. return;
  11. }
  12. //console.log(result);
  13. //关闭数据库
  14. db.close();
  15. });
  16. });

6.关闭数据库

  1. db.close();

node - MongoDB数据库的更多相关文章

  1. Node使用Mongoose操作MongoDB数据库——增删改查的实现

    当初刚出社会时就规划了下自己的职业生涯:先成为一名优秀的前端工程师,再成为一名全栈工程师(精通前端开发.后台开发和客户端开发),最后成为一名优秀的系统架构师.转眼间已经工作快三年,是时候迈出关键性的一 ...

  2. node.js零基础详细教程(6):mongodb数据库操作

    第六章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  3. 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口

    由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...

  4. vue+node+mongoDB 火车票H5(六)---城市列表保存到MongoDB数据库并且启用node.js服务

    把车站列表保存到数据库,并且从本地创建服务 node.js创建httpserver 1.搭建基于express的运行环境 全局安装express-gengerator cnpm install -g ...

  5. node.js零基础详细教程(6):mongodb数据库操作 以及导入导出

    第六章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  6. Node.js+Express+MongoDB数据库实现网页注册登入功能

    通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...

  7. node.js连接MongoDB数据库,db.collection is not a function完美解决

    解决方法一. mongodb数据库版本回退: 这个错误是出在mongodb的库中,在nodejs里的写法和命令行中的写法不一样,3.0的api已经更新和以前的版本不不一样,我们在npm中没指定版本号的 ...

  8. 2. node接口搭建--连接MongoDB数据库 (参考https://blog.csdn.net/ncepu_Chen/article/details/98725104#_337)

    1.使用mongoose连接MongoDB数据库 npm install mongoose 2.新建文件夹config存放数据库地址 3.安装MongoDB

  9. 线上mongodb数据库mLab使用总结

    最近在CNode社区看到有人分享了免费的线上mongodb数据库(容量500M),今天去注册了一下,成功的将线下数据库替换掉了,现在就说一下它的使用和配置需要注意的地方: mLab是一款免费的在线mo ...

随机推荐

  1. Flask快速实现简单python接口

    Flask 是一个轻量级 web 框架,自由.灵活.可扩展性强.Flask 本身相当于一个内核,大部分功能都需要扩展第三方库. Flask 框架有多“轻量”呢,之前写过一篇 Django实现restf ...

  2. STM32动态内存分配需要注意的地方

    STM32进行动态内存分配是需要注意动态内存分配大小不要超过.S文件中设置Heap Size大小 如图所示: 0x4000 :可以分配得最大字节是16384bytes 这个地方malloc的大小超过了 ...

  3. css样式及类型集合

    图片不清楚的,可以尝试点击图片鼠标右键选择:在新标签页中打开 放大

  4. Unity_Dungeonize 随机生成迷宫

    本文对随机生成迷宫的实现思路进行记录,其作用在于为游戏过程提供随机性以及节省开发周期,下面是Dungeonize的结构 随机迷宫的生成主要包括几个阶段 1.生成房间体结构,为墙体,自定义房间,自定义物 ...

  5. 支撑京东小程序的开发框架 「Taro」

    Taro 简介 现在支持小程序的平台太多了,例如: 微信小程序 QQ小程序 支付宝小程序 百度小程序 字节跳动小程序 针对他们都各自开发一套的话开发成本就太高了. 如果写一套代码,就能开发出适配这么多 ...

  6. 【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

    最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现.本文章记录了数据导入从0到1的过程,最终实现了每秒钟快速导入约 1200 条数据.一起来看吧~ 一.K ...

  7. git reset --hard HEAD^ 在cmd中执行报错

    报错: D:\git-root\test>git reset --hard HEAD^ More? More? fatal: ambiguous argument 'HEAD ': unknow ...

  8. 演示共享布局 Demonstrating Shared Layouts 精通ASP-NET-MVC-5-弗瑞曼 Listing 5-10

  9. oracle 11g数据库服务器安装

    系统:windows7旗舰版 64位.oracle数据库服务器版本:oracle11g. 一.下载   1.登录oracle账户: 首先打开谷歌浏览器,输入网址[英文版网址:https://www.o ...

  10. zbar+opencv检测图片中的二维码或条形码

    zbar本身自带检测二维码条形码功能,这里使用opencv只是做一些简单的读取图片,灰度图片以及显示条形码和二维码时用到一些绘制 // barcode-qrcodescanner.cpp: 定义控制台 ...