mongodb的基本操作
选择和创建数据库
选择和创建数据库的语法格式:
使用数据库名称
如果数据库不存在,它将自动创建。例如,下面的语句创建了一个spitdb数据库:
查看所有具有权限的数据库。
注意:在mongodb中,只有在插入内容后才会创建集合!也就是说,在创建一个集合(数据表)之后,您需要插入另一个文档(记录),然后才能真正创建集合
查看当前使用的数据库命令
DB
mongodb中的默认数据库是test。如果不选择数据库,则集合将存储在测试数据库中。
此外:
数据库名称可以是满足以下条件的任何UTF-8字符串。
不能是空字符串(“”
不得包含“(空格),,,,,,/\和\0(空字符)
应全为小写
最多64字节
一些数据库名称是保留的。您可以使用特殊功能直接访问这些数据库。
管理:从权限的角度来看,这是“根”数据库。如果将用户添加到数据库,该用户将自动继承所有数据库的权限。一些特殊的
服务器端命令只能从该数据库运行,例如列出所有数据库或关闭服务器
本地:该数据将永远不会被复制,并可用于存储限制为本地单个服务器的任何集
配置:当Mongo用于分片设置时,配置数据库内用于保存切分的相关信息
数据库删除
mongodb删除数据库的语法格式如下:
提示:主要用于删除持久数据库
集操作
集,它类似于关系数据库中的表
可以通过显示或隐式创建
显式创建集合
基本语法格式:
参数描述:
名称:要创建的集合的名称
例如:创建一个名为mycollection的公共集合
db。Createcollection(“mycollection”)
查看当前库中的表:show tables命令
集合的命名约定:
集合名称不能是空字符串“”
集合名称不能包含\0字符(空字符),它代表集合名称的结尾。集合名称不能是“系统”开始时,这是系统集合的保留前缀
用户创建的集合名称不能包含保留字符。某些驱动程序确实支持在集合名称中包含,因为某些系统生成的集合包含此字符。除非您想访问此系统创建的集合,否则在将文档插入集合时不要出现$
隐式创建集合
,如果集合不存在,集合将自动创建
通常,我们可以隐式创建文档。稍后将详细描述curd操作
集合删除
集合删除语法格式如下:
返回值
如果成功删除所选集合,drop()方法返回true,否则它将返回false,例如:要删除mycollection集合,mongodb集合数据操作(curd)
添加一个数据库集合名称插入(文档)
文档的数据结构基本上与JSON的数据结构相同
集合中存储的所有数据都是bson格式的
bson是一种JSON的二进制存储格式,它简称为二进制JSON,例如:
dB comment。插入({“articleid”:“100000”,“content”:“今天的天气晴朗宜人”,“userid”:“1001”,“昵称”:“Rose”,“createdatetime”:new date(),“likum”:numberprint(10),“state”:null})
未指定\uID字段将自动生成。当然,我们也可以指定它ID(idtype是objectid type是一个12字节的bson类型数据,格式如下:
前四个字节代表时间戳objectid(“对象ID字符串”)Gettimest(),接下来的三个字节是机器识别码,接下来的两个字节由进程ID(PID)组成,最后三个字节是随机数。)
插入多条数据
数据库集名称插入([document,document])
插入单个文档使用insert()或save()方法将文档插入到集合中。语法如下:
参数:
[示例]
将一段测试数据插入注释集合(表)中:
提示:
1)如果注释集合不存在,它将在
2)Mongo中隐式创建数字。默认情况下,它是双精度类型,如果你想保存一个整数,你必须使用函数numberprint(整数),否则你将有一个问题,获取它插入当前日期。使用new date()
4)插入的数据未指定ID,主键值
5)如果字段没有值,可以在执行后将其指定为null或不写入,下面显示插入数据是成功的
WriterResult({“n插入”:1})
注意:
文档中的键/值对是有序的
文档中的值不仅可以是双引号中的字符串,但也有其他几种数据类型(甚至是整个嵌入文档)mongodb区分小写,并且区分类型
mongodb文档不能有重复的键
文档的键是字符串。除了少数例外,密钥可以使用任何UTF-8字符。文档密钥命名约定:
密钥不能包含\0(空字符)。此字符用于指示键的结束
。和$有特殊含义,只能在特定环境下使用。
下划线“
开始的键是保留的(不严格要求)
批插入
语法:
批插入多篇文章注释:
提示:
在插入ID期间指定,主键是值
如果数据插入失败,插入将被终止,但成功插入的数据将不会回滚
因为批量插入容易因量数据而失败,所以可以使用try-catch来捕获异常,而这些异常在测试期间无法处理。例如(理解):
数据查询
查询数据的语法格式如下:
参数:
查询所有
如果我们想查询spit集中的所有文档,我们输入以下命令
在这里,您会发现每个文档都有一个name_uid字段,它相当于原始关系数据库中表的主键。如果插入文档记录时未指定此字段,mongodb将自动创建它,其类型为objectid 如果我们在插入文档记录时指定此字段,它也可以是objectid类型或mongodb支持的任何类型。如果我想根据某些条件进行查询,例如,我想查询用户ID为1003的记录,该怎么办?很简单!只要在find()中添加参数,参数也是JSON格式的,如下所示:
投影查询:
如果要从查询结果中返回一些字段,则需要使用投影查询(不是所有字段,而是仅指定的字段)。例如,只显示查询结果:
默认值
显示ID。
例如:只显示查询结果,用户ID和昵称,不显示
另一个示例:查询所有数据,但只显示
统计查询
统计查询使用count()方法,语法如下:
参数:
[示例]
(1)统计所有记录:
统计注释集中的所有记录:
(2)根据条件统计记录:
例如,在默认情况下,统计用户ID为1003的记录数,count()方法返回满足条件的所有记录
分页列表查询
您可以使用limit()方法读取指定数量的数据,并使用skip()方法跳过指定数量的数据
基本语法如下:
如果要返回指定数量的记录,可以在find方法之后调用limit来返回结果(topn)。默认值为20。例如:
skip方法还接受一个数字参数作为跳过的记录数。(不要使用第一个n)。默认值为0
分页查询:需求:每页2个。从第二页开始:跳过前两条数据,然后显示3条和4条数据
//第一页排序查询
sort()方法对数据进行排序。sort()方法可以通过参数指定排序字段,并使用1和-1指定排序方法,其中1为升序,-1为降序
语法如下:dB COLLECTION_uu;NAME。查找()。排序({key:1})
例如:
用户ID按降序排列,流量按升序排列
提示:
skip(),family(),Sort(),三者一起执行时,执行顺序是先Sort(),然后skip(),最后是显示的限制(),它独立于命令编写顺序
比较条件查询
数据库集名称查找(条件)
示例:包含700多条注释和喜欢的查询记录
包含查询
包含使用$in运算符。示例:查询注释集合中的userid字段包含1003或1004文档
标签: