zoukankan      html  css  js  c++  java
  • MongoDB命令


    说明:Mongodb命令是区分大小写的,使用的命名规则是驼峰命名法。
    对于database和collection无需主动创建,在插入数据时,如果database和collection不存在则会自动创建。
    先用命令行导向D:\mongoDbin目录下:
    1)help
    2)show dbs,show collections/tables
    3)use db
    例如命令【use demodb】,创建demodb,不用担心demodb不会创建,当使用use demodb 命令创建第一个collection时会自动创建数据库demodb,
    4)插入db.collectionName.insert({name:"jack",age:33})
    5)查询
    查询所有:db.Student.find();
    查询一条:db.Student.findOne()
    查询指定:db.Student.find({}); 例如:db.Student.find({color:"white"})
    说明:find()的第二个参数限制返回的filed的个数,0代表不返回,1代表返回。"_id"键总是会被返回。
    如果不带条件,只限制返回的filed个数的话,命令如下:db.Student.find({},{sex:0})。只需要第一个参数为{}空字典就可以。
    6)查询条件

    "$lt","$lte","$gt","$gte"分别对应<,<=,>,>=
    $ne,不等于,$in,$not和$or

    如下代码: db.Student.find({age:{$gt:33}})

    查询age大于33的
    db.Student.find({age:{$gte:33}})
    db.Student.find({age:{$lt:33}})
    db.Student.find({age:{$lte:33}})
    db.Student.find({age:{$gt:23,$lt:43}})
    db.Student.find({age:{$ne:33}}) 查询age不等于33
    db.Student.find({color:{$all:["red","blue"]}})
    --精确匹配,即被检索出来的文档,color值中的数组数据必须和查询条件完全匹配,即不能多,也不能少,顺序也必须保持一致。
    db.Student.find({color:["red","blue","black"]})
    --匹配数组中指定下标元素的值。数组的起始下标是0。注意color要加引号。
    db.Student.find({"color.0":"white"})

    7)排序

    db.Student.find().sort({age:1})
    db.Student.find().sort({age:1,sex:1})

    --1代表升序,-1代表降序
    8)分页

    db.Student.find().sort({age:1}).limit(3).skip(3)

    --limit代表取多少个document,skip代表跳过前多少个document。
    9)获取数量
    获取所有: db.Student.count();
    db.Student.count({name:null})
    --或者
    db.Student.find({name:null}).count()
    删除数据
    删除所有:db.Student.remove({});
    删除指定:db.Student.remove({name:null})
    删除集合:db.Student.drop();

    10)更新数据

    命令【db.Student.update({name:"jack"},{age:55})】执行后
    先查询name=jack的所有document,然后将name=jack的所有document都替换为{age:55},其它filed都没有了。
    正确的更新方式应该为:
    db.Student.update({name:"jack"},{$set:{age:55}})
    2.增加field

    --将name=lily的student增加一个filed height
    db.Student.update({name:"lily"},{$inc:{height:175}})
    3.upset-将数字field增加多少增量

    --若存在则添加,否则更新,只能用于数字field,例如age更新前是50,更新了185,则变为235.
    db.Student.update({name:"lily"},{$inc:{age:185}},true)
    4.批量更新数据

    4、特殊查询--null和exists

    null可以匹配自身,而且可以匹配"不存在的"

    --插入测试数据
    db.Student.insert({name:null,sex:1,age:18})
    db.Student.insert({sex:1,age:24})

    db.Student.find({name:null}) --上面两条都能查到
    db.Student.find({name:{$in:[null],$exists:true}}) ---只能查到第一条
    5、数组数据查询

    db.Student.insert({name:"wjh",sex:1,age:18,color:["red","blue","black"]})
    db.Student.insert({name:"lpj",sex:1,age:22,color:["white","blue","black"]})
    db.Student.find()

  • 相关阅读:
    那些书本上不曾告诉你的秘密
    附件十四面的数学模型与自动化算法分析
    ICAO 附件十四面课件分享
    风螺旋线的公式与特性
    How to describe the wind sprial in computer system?
    性能分析中看到螺旋线的影子
    风螺旋线的画法比较(三)
    风螺旋线的画法比较(二)
    风螺旋线的画法比较(一)
    网卡工作原理和wireshark混杂模式
  • 原文地址:https://www.cnblogs.com/fer-team/p/6893410.html
Copyright © 2011-2022 走看看