文档的插入和查询 | 学习笔记

简介: 快速学习 文档的插入和查询

开发者学堂课程【MongoDB精讲课程(上):文档的插入和查询学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/726/detail/12955


文档的插入和查询


内容介绍:

一、文档的插入

二、查询

 

一、文档的插入

文档的插入分为单个文档插入和多个文档插入,调用的命令是 db.collection.insert

使用 insert()save()方法向集合中插入文档,语法如下:

db.collection.insert(

<document or array of documents>

{

writeConcern: <document>,

ordered: <boolean>

}

}

collection 不是固定的,而是集合的名称。之前内容讲解过如果没有集合就会隐式创建一个集合。

insert 中可以带如下参数:

Parameter

Type

Description

document

document or array

要插入到集合中的文档或文档数组。(json 格式)

writeConcern

document

Optional. A document expressing the write concern.Omit to use the default write concern. See Write Concern.Do not explicitly set the write concern for the operation if run in a transaction.To use write concern with transactions,see Transactions and Write Concern.

ordered

boolean

可选。如果为真,则按顺序插入数组中的文档,如果其中—个文档出现错误,MongoDB 将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中一个文档出现错误,则继卖处理数组中的主文档。在版本2.6+中默认为 true

参数中实际用到documentdocument json 格式,存储完后为 BSON。其它两个仅作了解。writeConcern 代表插入时选择的一个包括性能和可靠性的级别。ordered 代表是否排序,插入的数据是否排序。

如果是单个插入使用 insert save 都可,两者等价。

示例:

要向 comment 的集合()中插入一条测试数据:

db.comment.insert({"articleid" : "100000" , " content" : "今天天气真好,阳光明媚" ,"userid": "1001 " , "nickname" : "Rose " , "createdatetime" : newDate() , "likenum " :NumberInt(10), "state" : null})

打开 cmd 窗口,直接 copy 上述代码回车,comment 在该数据库中没有,是直接插入一条文档,文档使用 json 格式。插入完成后结果显示 WriteResult({nInserted:1})

 

二、查询

插入后进行查询,查询数据的语法格式如下:

db. collection.find(<query>[projection])

所以输入 db. comment.find()

结果显示数据已经被插入成功。

再来输入

show collections

会发现 comment 集合也被隐式创建。

以上是单个查询,再来介绍多个查询:

多个查询不再使用 insert 语句而是 insertMany

语法:

db.collection.insertMany(

[ <document 1> , <document 2>...]

{

writeConcern: <document>,

ordered: <boolean>

}

}

Many 中放置类似 json 数组

示例:

批量插入多条文章评论

db. comment.insertMany([

{:"_id": "1" , "articleid" : "100001" , "content" : "我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。" , " userid": "1002" , "nickname" : "相忘于江湖 , "createdatetime " : new Date("2019-08-05T22:08:15.522Z"),"likenum " : NumberInt(1000) , "state" : "1"}

{"_id": "2" , "articleid" : "100001" , "content":"我夏天空腹喝凉开水,冬天喝温开水" , "userid" : "1005" , "nickname" :"伊人憔悴", "createdatetime" : new Date("2019-08-05T23:58:51.485Z"),"likenum " : NumberInt(888), "state" : "1"}

{"_id": "3" , " articleid" : "100001" , " content": "我一直喝凉开水,冬天夏天都喝。" ,"userid" : "1004" , "nickname " : "杰克船长", "createdatetime " :new Date("2019-08-06T01:05:06.321Z"),"likenum " : NumberInt(666), "state" : "1"}

{"_id" : "4" , "articleid" : "100001" , "content" : "专家说不能空腹吃饭,影响健康。" , "userid" :"1003" , "nickname" :"凯撒" , "createdatetime" : new Date("2019-08-06T08:18:35.288Z"),"likenum " : NumberInt(2000) , "state" : "1"}

{"_id": "5" , "articleid" : "100001" , " content" : "研究表明,刚烧开的水千万不能喝,因为烫嘴。" , "userid" : "1003" , "nickname" : "凯撒" , "createdatetime" : new Date("2019-08-06T11:01:02.521Z"),"likenum " : NumberInt(3000) , "state" : "1"}

])

将上述代码复制到窗口

image.png

可以看到查询成功,上述查询的为一条语句,再来尝试 find,输入

db.comment.find()

结果就会显示多条数据。

db.comment.find()是查询所有。

目前 articleid 有多个,现只需要查询其中一个例如100001,也可以通过 json 格式带参数。输入

db.comment.find({articleid:100001})

结果就返回 articleid 100001的多条数据。如果只想返回第一条数据输入

db.comment.findOne({articleid:100001})

结果如图

image.png

投影查询:

上述查询的字段太多,要求只显示部分字段,例如只想显示 articleid userid。在关系数据库中 select 不用*用部分字段即可。MongDB 同样可以实现:在 find 时带上一些参数,在 db.comment.find({articleid:100001})后还可以加一个 json 格式的参数

例如输入

db.comment.find({articleid:100001},{articleid:1})代表只显示 articleid 1的字段

image.png

显示结果如图,_id 默认显示,可以排除,再输入

db.comment.find({articleid:100001},{articleid:1,_id:0})

强制将_id 排除,此时结果只会显示 articleid

多个查询类似,都可以在后面添加字段。

相关文章
|
3月前
|
SQL 关系型数据库 MySQL
数据的插入和查询
数据的插入和查询
|
4月前
|
SQL 关系型数据库 MySQL
MYSQL基础知识之【添加数据,查询数据】
MYSQL基础知识之【添加数据,查询数据】
35 0
|
SQL Oracle 关系型数据库
SQL查询结果按照指定内容排序
SQL查询结果按照指定内容排序
SQL查询结果按照指定内容排序
|
存储 关系型数据库 MySQL
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
122 0
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
|
SQL JSON NoSQL
文档的更多查询 | 学习笔记
快速学习 文档的更多查询
110 0
文档的更多查询 | 学习笔记
|
NoSQL MongoDB 开发者
文档的删除操作 | 学习笔记
快速学习 文档的删除操作
文档的删除操作 | 学习笔记
|
开发者 Python
列表的修改查询和删除|学习笔记
快速学习列表的修改查询和删除
列表的修改查询和删除|学习笔记
|
SQL Oracle Java
MyBatis框架:第四章:插入记录并返回主键
MyBatis框架:第四章:插入记录并返回主键
270 0
|
开发者 索引
索引文档条数|学习笔记
快速学习索引文档条数。
|
开发者 索引
索引文档条数 | 学习笔记
快速学习索引文档条数