码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB命令行操作

时间:2016-03-20 11:44:23      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

1. 连接MongoDB

   Mongodb://username:password@hostname/dbname

2. 创建数据库:

   use dbname:如果数据库不存在则创建数据库,否则切换到指定数据库。

3. 查看所有数据库:

   show dbs

注:

    该命令不会显示新创建的空数据库,若想显示需要向空数据库插入一些数据。

    MongoDB中默认的数据库为test,若果没有创建新的数据库,集合将存放于test中。

 

4. 查看当前数据库名:

 

   db

 

5. 删除数据库:

 

   db.dropDatabase():删除当前数据库。

 

6. 插入文档:

 

   使用use命令选择指定数据库然后再执行插入操作:

 

   db.collection_name.insert(document):向数据库某集合插入文档,若该集合不在

 

   该数据库中则MongoDB会自动创建该集合并插入文档。

 

   使用示例:

 

   >db.col.insert({title: ‘MongoDB命令行操作‘, 

 

       description: ‘使用Shell命令行操作MongoDB‘,

 

       by: ‘吴俊填‘,

 

       tags: [‘mongodb‘, ‘database‘, ‘NoSQL‘],

 

       likes: 100

 

   })

 

(也可以将文档定义为一个变量然后再插入该变量)

7. 查看已插入文档:

   使用use命令选择指定数据库然后再执行查询操作:

    db.collection_name.find():以非结构化方式显示文档

    db.collection_name.find().pretty():以结构化方式显示文档

    db.collection_name.findOne():只返回一个文档(以结构化方式显示)

   条件查询示例:

    db.collection_name.find({‘name’:’wujuntian’})

    db.col.find({"likes":{$ne:50}}).pretty()    //不等于

    db.col.find({$or:[{"by":"吴俊填"},{"title": "MongoDB命令操作"}]}).pretty()     //

    db.col.find({"likes": {$gt:50}, $or: [{"by": "吴俊填"},{"title": "MongoDB命令操作"}]}).pretty()

    db.col.find({likes : {$lt :200, $gt : 100}})

8. 更新文档:

(1)update()方法:用于更新已存在的文档。

   db.collection.update(

      <query>,

      <update>,

      {

        upsert: <boolean>,

        multi: <boolean>,

        writeConcern: <document>

      }

   )

   参数说明:

   query : update的查询条件,类似sql update查询内where后面的内容。

   update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的内容。

   upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入新记录,true为插入,默认是false,不插入。

   multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

   writeConcern :可选,抛出异常的级别。

   使用示例:

   >db.col.update({‘title‘:‘MongoDB‘},{$set:{‘title‘:‘MongoDB命令操作‘}},{multi:true})

(2)save方法:通过传入的文档来替换已有文档。

   db.collection.save(

      <document>,

      {

        writeConcern: <document>

      }

   )

   参数说明:

   document : 文档数据。

   writeConcern :可选,抛出异常的级别。

   示例:

   >db.col.save({

       "_id" : ObjectId("56064f89ade2f21f36b03136"),    //替换此_id指定的文档

       "title" : "MongoDB",

       "description" : "MongoDB 是一个 Nosql 数据库",

       "tags" : [

               "mongodb",

               "NoSQL"

       ],

       "likes" : 110

   })

注:

    如果不指定_idsave()方法类似于inser()方法。

 

9. 删除文档:

 

   db.collection.remove(

 

      <query>,

 

      {

 

        justOne: <boolean>,

 

        writeConcern: <document>

 

      }

 

   )

 

   参数说明:

 

   query :(可选)删除的文档的条件。

 

   justOne : (可选)如果设为 true 或 1,则只删除一个文档。

 

   writeConcern :(可选)抛出异常的级别。

 

   示例:

 

   >db.col.remove({‘title‘:‘MongoDB‘})

 

   >db.col.remove()     //删除所有数据

 

10. MongoDB $type操作符

 

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

 

   示例:db.col.find({"title" : {$type : 2}})

 

   (获取“col”集合中titleString数据类型的数据)

 

11. limit():读取指定数量的数据记录。

 

    db.COLLECTION_NAME.find().limit(NUMBER)

 

    使用示例:

 

    db.col.find({},{"title":1,_id:0}).limit(2)

 

12. skip():跳过指定数量的数据记录。

 

    db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

 

    使用示例:

 

    db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

 

13. sort():对数据记录进行排序。

 

    sort()可以通过参数指定排序的字段,并使用-1 来指定排序的方式,其中为升序排列,而-1是用于降序排列。如果没有指定排序方式,默认按照文档的升序排列。

 

    db.COLLECTION_NAME.find().sort({KEY:1})

 

   使用示例:

 

    db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

14. ensureIndex():创建索引。

   db.COLLECTION_NAME.ensureIndex({KEY:1}) 1表示按升序创建索引,-1表示降序)

   示例:

   db.col.ensureIndex({"title":1,"description":-1})

注:

      MongoDB中的索引是存储在B树结构中的。

15. aggregate():聚合。

   db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

   示例:

   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

   类似于select by_user, count(*) from mycol group by by_user

 

MongoDB命令行操作

标签:

原文地址:http://www.cnblogs.com/wujuntian/p/5297208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!