mongodb是nosql数据库吗 4 NoSQL | MongoDB入门实战教程


mongodb是nosql数据库吗 4 NoSQL | MongoDB入门实战教程

文章插图
| 总结/Edison Zhou
通过前面几篇的铺垫,我们基本了解了MongoDB是个什么东西,搭建起了一个MongoDB的小集群环境 。接下来,我们就来学习一下MongoDB的基本操作 。
1 insert操作
我们都知道对于传统关系型数据库,通常会使用SQL来进行基本操作 。而对于MongoDB来说,通常则会使用MQL来进行基本操作 。
首先,我们来看看如何插入新数据,MongoDB为我们提供了插入单个和多个文档的接口 。
插入单个文档:db.<collectionName>.insertOne
db.teams.insertOne({name:"cscec-football-team", members:22});插入多个文档:db.<collectionName>.insertMany
db.teams.insertMany([{name:"yzw-football-team", members:22},{name:"yzw-basktellball-team", members:15},{name:"yzw-outting-team", members:30}]);2 find操作
查询操作(find)初步
在关系型数据库中,我们最常用的操作就是select,对于MongoDB则是find 。需要注意的是,find返回的是游标 。
查询所有数据:db.<collectionName>.find
db.teams.find(); -- 未格式化db.teams.find().pretty(); -- 格式化如果你使用的是navicat,可以切换一下展现形式看看 。
查询带条件的数据:db.<collectionName>.find(filter)
-- 单个条件db.teams.find({"members":22});-- 多个条件的and(类似于SQL中的and)db.teams.find({"members":22, "name":"yzw-football-team"});-- 上面也等价于db.teams.find({$and:[{"members":22, "name":"yzw-football-team"}]});-- 多个条件的or(类似于SQL中的or)db.teams.find({$or:[{"members":22, "name":"yzw-football-team"}]});-- 按照正则表达式查找db.teams.find({"name":/^ball/});查询操作(find)进阶搜索
在MQL中,传统SQL中的查询条件如>, <, !=等操作符有了不一样的表述:
-- 找到人数>20的teamdb.teams.find({"members":{$gt:20}});-- 找到人数<20的teamdb.teams.find({"members":{$lt:20}});-- 找到人数>=20的teamdb.teams.find({"members":{$gte:20}});-- 找到人数<=20的teamdb.teams.find({"members":{$lte:20}});-- 找到人数!=20的teamdb.teams.find({"members":{$ne:20}});下面是查询条件的一个对照表:
mongodb是nosql数据库吗 4 NoSQL | MongoDB入门实战教程

文章插图
如果需要查询某个字段是NULL?又或者如何实现SQL中的IN呢?
-- name IS NULLdb.teams.find({"name":{$exists:false}});-- name IS NOT NULLdb.teams.find({"name":{$exists:true}});-- members IN(11,22,30)db.teams.find({"members":{$in:[11,22,30]}});-- members NOT IN(11,22,30)db.teams.find({"members":{$nin:[11,22,30]}});下面是查询逻辑的一个对照表:
mongodb是nosql数据库吗 4 NoSQL | MongoDB入门实战教程

文章插图
查询操作(find)子文档搜索
在MQL中,可以支持我们使用"字段.子字段名"的形式来查询子文档:
-- 填充数据db.products.insertOne({name:"YZ.JC", description:{country:"China", province:"Chengdu"}});-- 查询子文档db.products.find({"description.country":"China"});查询操作(find)数组搜索
在MQL中,可以支持我们搜索数组中的元素:
-- 填充数据db.products.insertMany([{name:"Walkman", color:["white","gray"]},{name:"CD Player", color:["black","yellow"]}]);-- 查询color为white的db.products.find({color:"white"});-- 查询color为white或者black的db.products.find({$or:[{color:"white"},{color:"black"}]});


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: