MongoDB-基本命令学习一

来源:互联网 发布:翻译官软件下载 编辑:程序博客网 时间:2024/06/01 07:54

MongoDB-基本命令学习一

MongoDB 新建/删除数据库> use fyluse fyl  (use dbname 默认就创建了数据库,但是show dbs不会显示,需要插入一条记录)switched to db fyl> show dbsshow dbsblog   0.000GBlocal  0.000GBtest   0.000GB> > db.fyl.insert({name:"fyl",age:11})db.fyl.insert({name:"fyl",age:11})WriteResult({ "nInserted" : 1 })> > show dbsshow dbsblog   0.000GBfyl    0.000GBlocal  0.000GBtest   0.000GB> db.dropDatabase()db.dropDatabase()  (删除数据库,先use dbname,然后执行db.dropDatabase()记删除了当前数据库){ "dropped" : "fyl", "ok" : 1 }> > show dbsshow dbsblog   0.000GBlocal  0.000GBtest   0.000GBMongoDB 插入文档db.COLLECTION_NAME.insert(document)以下文档可以存储在 MongoDB 的 runoob 数据库 的 col集合中:db.col.insert({title: 'MongoDB 教程',     description: 'MongoDB 是一个 Nosql 数据库',    by: '菜鸟教程',    url: 'http://www.runoob.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 100})也可以定义变量形式document=({title: 'MongoDB 教程',     description: 'MongoDB 是一个 Nosql 数据库',    by: '菜鸟教程',    url: 'http://www.runoob.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 100});db.col.insert(document)插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。MongoDB 更新文档update() 方法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的记录,是否插入objNew,true为插入,默认是false,不插入。multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。writeConcern :可选,抛出异常的级别。db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。db.col.update({'title':'MongoDB'},{$set:{'title':'MongoDB-fyl'}},{multi:true})WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })db.col.find().pretty()save() 方法save() 方法通过传入的文档来替换已有文档。语法格式如下:db.collection.save(   <document>,   {     writeConcern: <document>   })参数说明:document : 文档数据。writeConcern :可选,抛出异常的级别。实例以下实例中我们替换了 _id 为 571991355cd37533a0cf711c 的文档数据:db.col.save({"_id" : ObjectId("571991355cd37533a0cf711c"),    "title" : "fyl",    "description" : "MongoDB",    "by" : "Runoob",    "url" : "http://www.runoob.com",    "tags" : [            "mongodb",            "NoSQL"    ],    "likes" : 11})更多实例只更新第一条记录:db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );全部更新:db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );只添加第一条:db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );全部添加加进去:db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );全部更新:db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );只更新第一条记录:db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );MongoDB 删除文档语法remove() 方法的基本语法格式如下所示:db.collection.remove(   <query>,   <justOne>)如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:db.collection.remove(   <query>,   {     justOne: <boolean>,     writeConcern: <document>   })参数说明:query :(可选)删除的文档的条件。justOne : (可选)如果设为 true 或 1,则只删除一个文档。writeConcern :(可选)抛出异常的级别。插入2条记录db.fyl.insert({title: 'MongoDB',     description: 'Nosql 数据库',    by: '菜鸟',    url: 'http://www.runoob.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 99})查询 db.fyl.find().pretty()db.fyl.find().pretty(){        "_id" : ObjectId("571997885cd37533a0cf711e"),        "title" : "MongoDB",        "description" : "Nosql 数据库",        "by" : "菜鸟",        "url" : "http://www.runoob.com",        "tags" : [                "mongodb",                "database",                "NoSQL"        ],        "likes" : 100}{        "_id" : ObjectId("571997915cd37533a0cf711f"),        "title" : "MongoDB",        "description" : "Nosql 数据库",        "by" : "菜鸟",        "url" : "http://www.runoob.com",        "tags" : [                "mongodb",                "database",                "NoSQL"        ],        "likes" : 99}删除db.fyl.remove({"likes" : 99})WriteResult({ "nRemoved" : 1 })db.fyl.remove({"likes" : 99})db.fyl.find().pretty()db.fyl.find().pretty(){        "_id" : ObjectId("571997885cd37533a0cf711e"),        "title" : "MongoDB",        "description" : "Nosql 数据库",        "by" : "菜鸟",        "url" : "http://www.runoob.com",        "tags" : [                "mongodb",                "database",                "NoSQL"        ],        "likes" : 100}如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:db.fyl.remove({"likes" : 99},{justOne: true})如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):>db.col.remove({})>db.col.find()MongoDB 查询文档语法MongoDB 查询数据的语法格式如下:>db.COLLECTION_NAME.find()find() 方法以非结构化的方式来显示所有文档。如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:>db.col.find().pretty()pretty() 方法以格式化的方式来显示所有文档。db.col.find({"likes" : {$ne:100}}).pretty()MongoDB AND 条件MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,及常规 SQL 的 AND 条件。语法格式如下:>db.col.find({key1:value1, key2:value2}).pretty()实例以下实例通过 by 和 likes 键来查询 > db.col.find({"by":"菜鸟教程", "likes" : 100}).pretty()以上实例中类似于 WHERE 语句:WHERE by='菜鸟教程' AND title='MongoDB 教程'MongoDB OR 条件MongoDB OR 条件语句使用了关键字 $or,语法格式如下:>db.col.find(   {      $or: [     {key1: value1}, {key2:value2}      ]   }).pretty()db.col.find({$or:[{"by" : "Runoob"},{"likes" : 99}]}).pretty()AND 和 OR 联合使用db.col.find({"likes": {$gt:11}, $or: [{"by": "Runoob"},{"title": "MongoDB-fyl"}]}).pretty()类似where likes>11 and (by=Runoob or title=MongoDB-fyl)db.col.find({likes : {$lt:200,$gt:100}}).pretty()MongoDB Limit与Skip方法db.col.find({},{"title":1,_id:0}).limit(2){ "title" : "PHP 教程" }{ "title" : "Java 教程" }db.col.find({},{"title":1}).limit(2)db.col.find({},{"title":1}).limit(2).skip(1)db.col.find({},{"title":3,_id:0,"by":1,_id:0}).limit(2)MongoDB 索引db.COLLECTION_NAME.ensureIndex({KEY:1})语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。MongoDB 聚合db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)db.col.aggregate([{$group : {_id : "$likes", num_likes : {$sum : 1}}}])以上实例类似sql语句: select likes, count(*) from col group by likesdb.col.aggregate([{$group : {_id : "$likes", num_likes : {$sum : "$likes"}}}])以上实例类似sql语句: select likes, sum(likes) from col group by likes


1 0
原创粉丝点击