MongoDB

/ sql / 2 条评论 / 1187浏览

MongoDB简介

1.MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 2.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 3.官方文档:https://docs.mongodb.com/

MongoDB基本概念


在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档是,如果文档所在的集合或数据库不存在会自动创建数据库和集合


基本指令

show dbs
show database
use 数据库名称
db
show collection
db.collection.drop()
db.collection.drop()

数据库的CRUD的操作

向数据库中插入文档

db.<collection>.insert(doc)
db.collection.insertOne()
db.stus.insert({name:"兰皋",age:18,gender:"男"})
db.collection.insertMany()
db.stus.insert([
	{name:"rng", age:28, gender:"男"},
	{name:"fpx", age:29, gender:"男"},
	{name:"ig", age:30, gender:"男"}
])

查询数据库中的文档

db.<collection>.find()
db.stus.find()
db.stus.find({name:"rng"})
db.stus.findOne()
db.stus.find().count()

修改数据库中的文档

db.<collection>.update(query,newdoc)
db.stus.update({name:"rng"},{age:30})
db.stus.update({name:"fpx"},{$set: {age:30}})
db.stus.update({name:"fpx"},{$unset: {age:30}})
db.stus.updateOne(query,newdoc)
db.stus.updateMany(query,newdoc)
db.collection.replaceOne(query,newdoc)

删除数据库中的文档

db.collection.remove(query)
db.collection.deleteOne(query)
db.collection.deleteMany(query)

高级查询

条件查询

大于/小于/大于或等于/小于或等于 $gt $lt $gte $lte

db.numbers.find({"num":{$gt:5000}});
db.numbers.find({"num":{$gt:40,$lt:50}});

不等于 $ne

db.numbers.find({"num":{$ne:5000}});

包含和不包含 $in、$nin

db.numbers.find({"num":{$in:[40,50]}});

取模运算 $mod

db.numbers.find( "this.num % 10 == 1") 可简写成下面这种
db.numbers.find({num:{$mod: [10,0]}})

匹配所有 $all

db.numbers.find({a:{$all:[20,30]}});

数组内元素数量 $size

db.numbers.find({num:{$size:1}});

是否存在 $exists

db.numbers.find({num:{$exists:true}});

高级查询

类型匹配 $type

db.numbers.find({num:{$type:2}});

排序 .sort(升序1,降序-1)

db.numbers.find({}).sort({"num":-1});

去重 .distinct(属性名)

db.numbers.distinct("num")

汇总/统计 .count()

db.numbers.find().count();

读取指定条数数据 .limit(数值)

db.numbers.find().sort({_id: 1}).limit(10);

跳过指定条数数据 .skip(数值)

db.numbers.find().sort({_id: 1}).skip(11).limit(10)

内嵌文档:在文档值中再内嵌一个文档对象

{name: "python", hobby:{cities:["changsha","xiangtan"],movies:["A Chinese Oryssey","hero"]}}
db.stus.find({"hobby.movies":"hero"});
db.stus.update({name:"python"},{$push:{"hobby.movies":"lol"}});

MongoDB中执行代码块

for(var i=1; i<20000; i++){
	db.num.insert({num:i});
}
var arr = [];
for(var i=1; i<20000; i++){
	arr.push({num:i});
}
db.num1.insert(arr);