mongodb

MangoDB

概述

非关系数据库;文档型数据库

MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的i,简单理解
MongoDB这个数据库中存的是各种各样的JSON。

偶数版本为稳定版,奇数版本为开发版。

三个概念:

  • 数据库

  • 集合

    类似数组,可以存放文档

  • 文档

    文档数据库中的最小单位,我们存储和操作的内容都是文档

基本命令

启动服务器:

mongodb

**mongod** **--dbpath 数据库 --port 123**

启动客户端:

​ 输入 mongo 连接mongodb,出现 >

显示当前所有数据库:

show dbs / show databases

进入指定数据库:(不存在时自动创建)

use test

显示当前在哪个数据库中:

db

显示当前数据库中所有的集合:

show collections

向某个集合中插入文档:

db.collection.insert({name:”zhangsan”,age:12,gender:”男”});

插入多个文档:(数组)

db.collection.insert([

{name:”zhangsan”,age:12,gender:”男”},

{name:”zhangsan”,age:12,gender:”男”},

{name:”zhangsan”,age:12,gender:”女”},

]);

插入文档的其他方法:

db.collection.insertOne(); 一次只能插入一个文档

db.collection.insertMany(); 一次必须插入多个文档,即数组形式。

mongodb会自动帮我们添加一个字段:_id,目的就是保证数据的唯一性。我们可以自己指定该字段的值,但是也要保证它的唯一性。

查询文档:

​ *db.collection.find(); * //查询所有符合条件的文档,返回的是一个数组。

​ find()中可以接收一个对象作为条件参数,{} 表示查询所有的文档,{字段名:字段值}表示查询指定值的文档,如:

​ db.collection.find({age:28})[1];

​ db.collection.find({age:28,name:”张三”});

db.collection.find({}).count(); //查询所有结果的数量

db.collection.findOne(); //查询集合中符合条件的第一个文档,返回的是一个文档对象。

​ db.collection.findOne({name:”张三”}).name;

修改文档:

db.collection.update(查询条件,新对象):默认情况会使用新对象来替换旧的对象。默认情况下只会修改第一个。若只想修改指定的字段,需要使用“修改操作符”。

db.collection.update({name:”张三”},{age:28});

修改操作符:

$set: 修改文档中的指定属性,如:

​ db.collection.update({name:”张三”} , { $set:{

​ address:”郑州市”,

​ gender:”女”

​ }});

$unset: 删除文档中的指定属性。与$set使用方法相同。

db.collection.updateMany(查询条件,新对象): 会修改所有的对象。

db.collection.updateOne(查询条件,新对象): 只会修改一个对象。

db.collection.remove({}); //传条件和 find()一样。remove()必须传参。

​ db.collection.remove({age:12 }, true) ; //第二个参数为true时,只删除一个。

db.collection.deleteOne();

db.collection.deleteMany();

db.collection.drop(); //删除集合

db.dropDatabase(); //删除数据库