MangoDB操作

课堂实验 石家庄铁道大学信息学院

1.启动MongoDB shell

view plain copy

  1. numactl --interleave=all mongod -config /apps/mongodb/bin/mongodb.conf  
  2.     
  3. mongo  

2.切换到admin数据库,使用root账户。

view plain copy

  1. use admin  
  2. db.auth('root','strongs')  

3.插入实验数据。

view plain copy

  1. db.mycollection.insert({'username':'zhangyu','age':13,'salary':500});  
  2. db.mycollection.insert({'username':'zhangyu','age':13,'salary':500});  
  3. db.mycollection.insert({'username':'laohu','age':20,'salary':200});  
  4. db.mycollection.insert({'username':'banma','age':13,'salary':300});  
  5. db.mycollection.insert({'username':'xiongmao','age':8,'salary':300});  

4.统计集合中数据条数。

view plain copy

  1. db.mycollection.count()  

5.MongoDB中使用find来进行查询,查询就是返回一个集合中的子集,子集的范围从0到整个集合。find的第一个参数决定了要返回哪些子集,其形式也是一个集合。

空的文档查询会匹配集合的全部内容,要是不指定查询文档,默认就是{}

view plain copy

  1. db.mycollection.find()  

6.查询第一条数据。

view plain copy

  1. db.mycollection.findOne()  

注意,findOne中的O要大写。

7.查询第1条以后的所有数据。

view plain copy

  1. db.mycollection.find().skip(1)  

8.跳过第2条,查询后两条数据。

view plain copy

  1. db.mycollection.find().limit(2).skip(2)  

这条命令可用于分页,LimitpageSizeSkip是第几页*pageSize

9.限定查询3条数据。

view plain copy

  1. db.mycollection.find().limit(3)  

10.查询结果集的记录数。(查询salary小于300或大于400的个数)

view plain copy

  1. db.mycollection.find({$or:[{salary:{$lt:300}},{salary:{$gt:400}}]}).count()  

查询指定列的数据。可以通过find(或者findOne)的第二个参数来指定想要的键,这样做既会节省传输的数据量,又能节省客户端解码文档的时间和内存消耗。

11.查询mycollection集合中,'age'列和'salary'列。

view plain copy

  1. db.mycollection.find({},{age:1,salary:1})  

1表示显示此列的意思,也可以用true表示。

12.salary升序排序。(将1换成-1就是降序排序)

view plain copy

  1. db.mycollection.find().sort({salary:1})  

13.查询username列,并去掉重复数据。

view plain copy

  1. db.mycollection.distinct('username')  

MongoDBRDBMSWhere语句的比较:

14.查询age等于13的数据。

view plain copy

  1. db.mycollection.find({'age':13})  

15.查询age小于13的数据。

view plain copy

  1. db.mycollection.find({age:{$lt:13}})  

16.查询age大于15的数据。

view plain copy

  1. db.mycollection.find({age:{$gt:15}})  

17.查询age不等于13的数据。

view plain copy

  1. db.mycollection.find({'age':{$ne:13}})  

MongoDB AND条件

MongoDB find() 方法可以传入多个键(key),每个键(key)以逗号隔开。语法格式如下:

view plain copy

  1. db.col.find({key1:value1, key2:value2})  

18.查询age等于20salary等于200的数据。

view plain copy

  1. db.mycollection.find({'age':20,'salary':200})  

19.查询age小于13salary大于等于200的数据。

view plain copy

  1. db.mycollection.find({$and:[{age:{$lt:13}},{salary:{$gte:200}}]})  

MongoDB OR条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

view plain copy

  1. db.col.find(  
  2.    {  
  3.       $or: [  
  4.          {key1: value1}, {key2:value2}  
  5.       ]  
  6.    }  
  7. )  

20.查询salary大于300age小于等于13的数据。

view plain copy

  1. db.mycollection.find({$or:[{salary:{$gt:300}},{age:{$lte:13}}]})  

ANDOR联合使用

21.查询salary大于等于300时,username'banma'或者age8的数据,类似的常规 SQL 语句为:where salary>=300 and (username = 'banma' or age = 8)

view plain copy

  1. db.mycollection.find({'salary': {$gte:300}, $or: [{'username': 'banma'},{'age': 8}]})  

MongoDB $type 操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

MongoDB 中可以使用的类型如下表所示:

22.获取mycollection集合中usernameString类型的数据。

view plain copy

  1. db.mycollection.find({'username':{$type:2}})  

MongoDB 正则表达式

正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

23.查询username中包含'm'的数据。

view plain copy

  1. db.mycollection.find({username:/m/})  

24.查询以z开头的数据。

view plain copy

  1. db.mycollection.find({username:/^z/})  

至此,实验结束!

原文地址:https://www.cnblogs.com/aishanyishi/p/10304810.html