Mongodb命令

作者: 向右奔跑 | 来源:发表于2017-01-30 21:15 被阅读302次

    一、数据库 - 表

    1. 创建数据库 mydb
      use mydb
    

    use mydb也是切换数据库命令。

    1. 删除数据库
    db.dropDatabase()
    

    这将删除选定的数据库。如果还没有选择任何数据库,然后它会删除默认的 test 数据库。

    1. 检查列表数据库通过使用命令 show dbs
    >show dbs
    local        0.000GB
    mydb         0.044GB
    test         0.000GB
    
    1. mongodb中没有表的概念,是collection,类似关系数据库中的表
      show collections:显示当前数据库中的集合
    > show collections
    articles
    jianshuusers
    

    (也可以使用show tables)

    5)创建数据库中的集合(表)
    db.createCollection(name, options)

    > db.createCollection('mycollection')
    { "ok" : 1 }
    > show collections
    articles
    jianshuusers
    mycollection
    > 
    

    在MongoDB中,不需要创建集合。当插入一些文件 MongoDB 自动创建的集合。

    > db.mytb.insert({"name":"Tomson"})
    WriteResult({ "nInserted" : 1 })
    > show collections
    articles
    jianshuusers
    mytb
    > 
    
    1. 删除数据库中的集合(表)
      db.COLLECTION_NAME.drop()
    > db.articles.drop()
    true
    

    注意:删除时没有确认

    二、查询

    1)查询所有记录

    db.articles.find()
    

    相当于:select* from articles;

    默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”

    但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。

    2)集合(表)的结构
    mongodb是没查询集合结构(schema)的,直接用find查询数据就好了。

    1. 查询去掉后的当前聚集集合中的某列的重复数据
    db.articles.distinct("author");
    

    会过滤掉name中的相同数据

    相当于:select distict(author) from articles;

    1. 条件查询:
      查询likes > 1000的记录
     > db.jianshuusers.find({likes:{$gt:1000}})
    

    相当于:select * from jianshuusers where likes >1000

    小于(<): $lt
    大于等于(>=):$gte
    小于等于(<=):$lte

    db.jianshuusers.find({"nickname": "纯银V"});
    
    

    相当于:select * from jianshuusers where nickname ='纯银V'

    模糊查询

    db.jianshuusers.find({nickname: /mongo/})
    

    相当于%%

    select * from jianshuusers where nickname like ‘%mongo%’;

    db.jianshuusers.find({nickname: /^mongo/})
    

    相当于 select * from jianshuusers where nickname like ‘mongo%’;

    5)查询指定列
    查询指定列nickname、url数据

    db.jianshuusers.find({}, {nickname: 1, url: 1})
    

    相当于:select nickname, url from jianshuusers;

    6)排序

    升序:

    db.jianshuusers.find().sort({likes: 1})
    
    

    降序:

    db.jianshuusers.find().sort({likes: -1})
    
    1. 查询某个结果集的记录条数
    db.jianshuusers.find({likes: {$gte: 1000}}).count()
    

    相当于:select count(*) from jianshuusers where likes >= 1000;

    相关文章

      网友评论

      • 帅气小伙:前辈们做一期python调用mongodb的,在学tensorflow需要用到
        向右奔跑:@帅气小伙 有啊,写过一篇 http://www.jianshu.com/p/30408d8ad1c0 代码在这里:https://github.com/ppy2790/jianshuusers
      • 罗罗攀:mongodb好用,就是花括号太多:joy:
        向右奔跑:@罗罗攀 哈哈,是的。不如SQL语句来得直接

      本文标题:Mongodb命令

      本文链接:https://www.haomeiwen.com/subject/qfehittx.html