zoukankan      html  css  js  c++  java
  • 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/})  

    至此,实验结束!

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/aishanyishi/p/10304810.html
Copyright © 2011-2022 走看看