MongoDB操作

这篇博客详细介绍了MongoDB数据库的使用,包括创建和切换数据库、管理集合、插入和更新文档、查询与删除数据等基本操作。还讲解了数据类型、索引创建、聚合操作以及数据查询的条件过滤。此外,提到了MongoDB中的数据类型,如数字、字符串、对象等,并展示了如何使用$type操作符来查询特定类型的数据。最后,讨论了limit、skip和sort方法,以及如何通过TTL设置索引过期时间。
摘要由CSDN通过智能技术生成

MongoDB操作

数据库
use 数据库名 //如果不存在,创建数据库
db //展示当前数据库
show dbs //查看所有数据库(如果新创建的数据库没有显示,则需要在里面插入数据)
集合
db.createColletion("集合名")  //创建集合
show collections 或 show tables //查看集合(如果集合里面没有数据,查看不到,需添加数据)
db.createCollection("集合名", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } ) //创建固定集合,空间大小6142800,文档个数大小10000  
db.集合名.drop() //删除集合
文档
db.集合名.insert({文档名1:数据1,文档名2,数据2,文档名3,数据3}) //插入文档
db.集合名.insert([{{文档名1:数据1,文档名2,数据2},{{文档名1:数据1,文档名2,数据2}])  //批量插入数据
db.集合.update({文档1:数据1},{$set:{文档1`:数据1`}}) //更新文档
db.集合.save({"_id": ObjectId("主键id"),文档1:数据1,文档2,数据2}) //根据主键更新数据
db.集合.remove({})  //删除全部数据
db.集合.remove({文档:数据})  //删除特定数据
数据
db.test.insert([
{
    "title": "MongoDB 教程",
    "tags": [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes": 110
},
{
    "title": "MongoDB",
    "tags": [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes": 120
},
{
    "title": "DD",
    "tags": "redis",
    "likes": 1000
},
{
    "title": "TT",
    "tags": "java",
    "likes": 1100
},
{
    "title": "DD",
    "tags": "java",
    "likes": 900
},
{
    "title": 11,
    "tags": "java",
    "likes": 900
},
{
    "title": "DD",
    "tags": "java",
    "likes": 900
}
])
find()查找方法
db.集合.find({文档:数据}) //查询特定数据
$lt //小于
$lte //小于等于
$gt //大于
$gte //大于等于
$ne //不等于
db.集合.find({文档:{$lte:特定值}}) //查找小于等于特定值的数据
db.集合.find({文档1:数据1,文档2:数据2}) //and联合使用,查找满足文档1和文档2条件的数据
db.集合.find({文档1:数据1,$or:[{文档2:数据2,文档3,数据3}]}) //and和or联合使用,查找where 文档1 = 数据1 and (文档2 = 数据2 or 文档3 = 数据3)
MongoDB中的数据类型
类型数字
double1
string2
Object3
Array4
Binary data5
Object id7
Boolean8
Date9
Null10
Regular Expression11
JavaScript13
Symbol14
JavaScript (with scope)15
32-bit integer16
Timestamp17
64-bit integer18
Min key255
Max key127
$type操作符
db.集合.find({文档:{$type:数据类型}}) //查询文档为此类数据类型的数据
db.集合.find({文档:{$type:数据类型代表的数字}})

在这里插入图片描述

limit与skip方法
db.集合.find().limit(2) //查找并且只展示2条数据
db.集合.find().limit(2).skip(2) //跳过前面2条数据,从第3条数据开始查找并且值展示2条数据
sort方法
1为升序,-1为降序
db.集合.find().sort({文档:1}) //按升序排列
索引 (1创建的索引按升序排列,-1创建的索引按降序排列)
db.集合.createIndex({文档:1}) //创建索引按升序排列
db.集合.createIndex({文档1:1,文档2:-1}) //创建复合索引
db.集合.getIndexes() //查看全部索引
db.集合.totalIndexSize() //查看索引大小
db.集合.dropIndexes() //删除全部索引
db.集合.dropIndex({文档}) //删除指定索引
索引关键字为Date类型,可以利用TTL设置过期时间
db.集合.createIndex({"时间文档": 1},{expireAfterSeconds: 过期时间}) //创建有过期时间的索引
聚合
表达式描述
$sum计算总和。计算总和
$avg计算平均值
$min获取集合中所有文档对应值得最小值
$max获取集合中所有文档对应值得最大值
$push将值加入一个数组中,不会判断是否有重复的值
$addToSet将值加入一个数组中,会判断是否有重复的值,若相同的值在数组中已经存在了,则不加入
$first根据资源文档的排序获取第一个文档数据
$last根据资源文档的排序获取最后一个文档数据
表达式描述
$project修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
$match用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作
$limit用来限制MongoDB聚合管道返回的文档数。
$unwind将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值
$group将集合中的文档分组,可用于统计结果
$sort将输入文档排序后输出
$geoNear输出接近某一地理位置的有序文档
$skip在聚合管道中跳过指定数量的文档,并返回余下的文档
//常用操作
db.集合.aggregate([{$group:{_id:"$文档"}]) //按文档分组
db.集合.aggregate([{$match:{文档:数据}}]) //获取指定数据文档

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值