MongoDB基本操作

一.
Insert:
  db.post.insert({“_id”:12,"name":"jiang11","age":11})
Save:
> db.post.insert({"_id":12,"age":11})  //如果存在,则更新,否则插入

二.
删除指定的数据
> db.post.remove({"age" : {$gt : 10}})   //删除年龄的大于10的
> db.post.remove({"age":{$gt : 8},"name":"jiang10"})  //删除年龄大于8的并且名字为jiang10
删除所有的数据
> db.post.remove({})   //删除所有的数据

三.
修改指定的数据
> db.post.update({"name":"jiang9"},{$set : {"age":19}})  //更改name为jiang9的age为19
$set
用法:{$set:{field:value}}
作用:把文档中某个字段field的值设为value
"$set"用来指定一个键的值。如果这个键不存在,则创建它。
> db.users.update({"_id" : ObjectId("58171a4bae96c1c7528f48fb")},{"$set":{"hoby":"football"}})  //增加爱好的字段


Ø  db.users.update({"_id" :ObjectId("58171a4bae96c1c7528f48fb")},{"$set":{"hoby":["basketball","football","swimming"]}})   //增加爱好的内容


$unset

用法:{$unset:{field:1}}

作用:删除某个字段field

Ø  db.users.update({"_id" :ObjectId("58171a4bae96c1c7528f48fb")},{"$unset":{"hoby":1}})//完全删除爱好的字段


$inc

用法:{$inc:{field:value}}

作用:对一个数字字段的某个field增加value, value可以为负值

Ø  db.users.update({"_id" :ObjectId("58171a4bae96c1c7528f48fb")},{"$inc":{"pageviews":1}}) //增加访问的次数,自增加一


Ø  db.users.update({"_id" :ObjectId("58171a4bae96c1c7528f48fb")},{"$inc":{"pageviews":-1}}) //增加访问的次数,自增减一

$push

用法:{$push:{field:value}}

作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型

Ø db.users.update({name:"zun"},{$push:{"ailas":"Beijing"}})   //像名字为zun的记录中追加一个别名


$pop

用法:删除数组内第一个值:{$pop:{field:-1}}、删除数组内最后一个值:{$pop:{field:1}}

作用:用于删除数组内的一个值

Ø db.users.update({"name":"jiang"},{$pop:{"hoby":1}})  //删除namejianghoby中的最后一个值


Ø db.users.update({"name":"jiang"},{$pop:{"hoby":-1}})  //删除namejianghoby中的第一个值


四.
用法:删除数组内第一个值:{$pop:{field:-1}}、删除数组内最后一个值:{$pop:{field:1}}集合查询方法 find()
语法: db.post.find( query , projection ) 
//可选.使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略).
//在第二个参数中,指定键名且值为1或者true则是查询结果中显示的键;若值为0或者false,则为不显示键。
//将返回集合中所有文档
Ødb.post.find()
或者
Ødb.post.find({})
Ødb.post.find({"_id":{$gt:3}},{"name":1})  //查询id大于3的,只要name字段


Ø  db.post.find({"_id":{$gt:3}},{"name":1,"_id":0})  //查询id大于3,只要name字段,且不显示id号


Ø  db.post.find({"_id":{$gt:3}},{"name":1,"age":1,"_id":0})  //查询id大于3的,要name和age字段,并且不显示id号


①  查询数量

Ø  Db.post.count()  //查询所有


Ø  Db.post.count({“age” : {$gt : 5}}) //查询年龄大于5的数量

Ø  Db.post.count({“age” : {$gte : 5}}) //查询年龄大于等于5的数量

Ø  Db.post.count({“age” : {$lt : 5}}) //查询年龄小于5的数量

Ø  Db.post.count({“age” : {$lte : 5}}) //查询年龄小于等于5的数量

 

①  查询一条数据

Ø  Db.post.findOne()  //默认显示升序

Ø  Db.post.findOne({“age”:10}) //查询年龄等于10 的数据

 

②  查询多条数据

Ø  Db.post.find()   //默认显示升序

Ø  db.post.find({"age":{$gt : 10}})   //查询年龄大于10的数据

Ø  db.post.find({"age":{$gte : 10}})   //查询年龄大于等于10的数据

Ø  db.post.find({"age":{$lt : 10}})   //查询年龄小于10的数据

db.post.find({"age":{$lt : 10}})   //查询年龄小于等于10的数据

五. 操作符

①  $all

Ø  db.post.find({"tags":{$all:["php"]}})  //查询tag中包含php的文档

Ø  db.post.find({"tags":{$all:["java","javascript"]}})  //查询tag中包含javascript和java的文档


①  $in

Ø  db.post.find({"_id" : {$in : [1,2]}})  //查询id为1和2的文档

Ø  db.post.find({"_id" : {$in : [1,3]}})  //查询id为1和3的文档


①  $nin

Ø  db.post.find({"_id" : {$nin : [1,3]}})  //查询id不等于1和3的文档


①  $ne

Ø  db.post.find({"_id" : {$ne : 1}})   //查询id不等于1的文档


Ø  db.post.find({"_id" : {$ne : 10}})    //查询id不等于10的文档


①  $gt , $gte ,$lt,$lte  (分别对应">"">=""<""<=")

Ø  db.post.find({"_id":{$gt:5}})  //查询id 大于5的文档

Ø  db.post.find({"_id":{$gte:5}})  //查询id 大于等于5的文档

Ø  db.post.find({"_id":{$lt:5}})   //查询id 小于5的文档

Ø  db.post.find({"_id":{$lte:5}})   //查询id 小于等于5的文档


①  $and

Ø  db.post.find({$and:[{"_id":{$lt:8}},{"age":{$gt:4}}]})  //查找id小于8的并且年龄大于4的


Ø  db.post.find({$and:[{"_id":{$lt:8}},{"age":{$gt:4}},{"age":{$ne:6}}]})  //查找id小于8并且年龄大于4且不等于6的


①  $nor

Ø  db.post.find({$nor : [{"_id":4},{"age":{$gt:8}}]})  //查询id不为4且age不大于8的


①  $not

Ø  db.post.find({"_id": {$not:{$gt:5}}})  //查找id不大于5的文档


Ø  db.post.find({"hell": {$not:{$gt:5}}}) //如果对指定的可以找不到,则返回全部数据


①  $or

Ø  db.post.find({$or:[{"_id":10},{"age":{$lt:10}}]})  //查找id为10且年龄小于10的文档


①  $exists

Ø  db.post.find({"age":{$exists:true,$lt:10,$ne:8}})  //如果存在age键,查询age小于10不为8的文档数据


db.post.find({"age":{$exists:false}})  //查询不存在age键的文档数据


六. 数据库操作

①  显示数据库列表

Ø  show dbs

②  切换当前数据库

Ø  use post  #使用某个数据库


③  删除当前数据库

Ø  db.dropDatabase();  #删除当前的数据库


④  显示当前数据库中的集合

Ø  show collections  # 显示当前数据库中的所有集合


⑤  创建当前数据库的一个所属集合

Ø  db.createCollection('users') #在当前数据库创建一个个users集合


⑥  除数据库中的某个集合

Ø  db.users.drop()    #删除当前数据库中的users集合


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值