mongodb简单操作

增加  insert
> for(i=1;i<=10;i++){
... db.c1.insert({'name':'user'+i,'age':i})
... }
> db.c1.find();
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }

增加还有一个方法  save     二者直接区别    当id存在的情况下 insert 会返回false        save     则会更新原值 


删除  remove  

remove({'age':1});   可以在里面跟条件



查找有很多参数

$gt  大于      $lt 小于      $gte  大于等于        $lte 小于等于      $ne  不等于 

> db.c1.find({'age':{$gt:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$lt:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
> db.c1.find({'age':{$gte:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$lte:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
> db.c1.find({'age':{$ne:5}}) 
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }

统计个数   排序    取指定的条数

> db.c1.count();
10
> db.c1.find({'age':{$gt:5}}).count();   指定条件
5
> db.c1.find({'age':{$gt:5}}).sort({'age':-1});     // -1倒序    1 正序
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
> db.c1.find({'age':{$gt:5}}).sort({'age':-1}).skip(2).limit(2);  // 查询 从哪条开始取 使用的是 skip()    不像mysql  limit(2,2)
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }


当查询一个字段是否为null 时    不存在的字段也会被检索出来    这时候就需要使用$exists 

$exists  某个字段是否存在

> db.c1.find({'age':{$exists:true}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$exists:false}});
> db.c1.find({'sex':{$exists:true}}); 

$mod 取余  里面使用的 []  是操作符 而并非数组

> db.c1.find({'age':{$mod:[2,0]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$mod:[3,0]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
> db.c1.find({'age':{$mod:[2,1]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }

$in  类似传统操作中in   在什么里的筛选出来                $nin 跟$in操作相反      $all  则是完全匹配

> db.c1.find({'age':{$in:[2,1]}}); 
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
> db.c1.find({'age':{$in:[2,1,3,5]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
> db.c1.find({'age':{$nin:[2,1,3,5]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }


$or   或者    因为默认的语句中含有并且意思    如果我们想查询  name为user1    或者    name为user2的人    $nor  与$or相反

> db.c1.find({$or:[{name:'user1'},{'name':'user2'}]});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
> db.c1.find({$nor:[{name:'user1'},{'name':'user2'}]});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }

此外还支持正则

> db.c1.find({'name':/user1/});                        
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }

distinct  去重

> db.c1.distinct('name');  
[
        "user1",
        "user2",
        "user3",
        "user4",
        "user5",
        "user6",
        "user7",
        "user8",
        "user9",
        "user10"
]

update({},{},1,1)    update 后面有两个参数  第三个参数  当更新的值不存在  就新增       第四个参数要用魔术方法$set才可以用     表示对所有符合条件的都更新   默认的只会对符合条件的第一条做更改


$inc   自增 

db.c1.update({name:'user1'},{$inc:{age:10}});

$unset 删除一个字段

db.c1.update({"name":'user1'},{$unset:{'name':1}})   //1 为true 的意思


$push  从尾部给一个数组压入一个值

$pop  从尾部弹出一个值

$pushAll   压入多个值

$addToSet    去掉重复值

{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "name" : "user100", "arr" : [ 1, 2, 3 ] }

> db.c1.update({name:'user100'},{$push:{arr:4}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4 ], "name" : "user100" }

> db.c1.update({name:'user100'},{$pop:{arr:1}})   //1 为从尾部删   -1从头部删
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3 ], "name" : "user100" }

> db.c1.update({name:'user100'},{$pushAll:{arr:[4,5,6]}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4, 5, 6 ], "name" : "user100" }

> db.c1.update({name:'user100'},{$addToSet:{arr:6}})   发现重复的值压不进去


> db.c1.update({name:'user100'},{$addToSet:{arr:{$each:[7,8,6]}}})   // 压入多个值 与pushAll效果相同 (除了重复值不可以压进)


$pull  直接删值

$pullAll  删除多个值

{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4, 5, 6, 7, 8 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pull:{arr:1}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 2, 3, 4, 5, 6, 7, 8 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pullAll:{arr:[5,6,7,8]}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 2, 3, 4 ], "name" : "user100" }






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值