MongoDB 常用命令(二)


接着上篇文章

一:更改

    db.collection.update(查询表达式,新值,选项)

    例:修改stu集合里,name为lilei的年龄,由原来的19变为32;

        db.stu.update({"name":"lilei"},{"age":32});这条语句正确吗?

   

   注意:上面语句执行后,提示一条文档记录被修改成功了,但是我们再查询看到的结果是,原来的记录name属性丢失了。。。。Why?

              因为,上面语句表达的真实含义是把{“name":"lilei","age":19}修改成{”age":32}。

     正确的写法:db.stu.update({"name":"lilei"},{$set:{"age":32}});

     $set: 修改某列的值

     $unset: 删除某列

     $rename: 重命名某列

     $inc: 增长某列


     这里有个option选项,{update:true/false}

     当设置为true时,表示查询到匹配记录就修改,没有查到就新规插入。有则该,无则增。


二:查询

      1):查询当前集合中所有文档

       db.stu.find();

       2):查询符合条件的文档

       db.stu.find({"name":"lilei"});

      

      3):查询指定列

         db.stu.find({"name":"hmm"},{"age":1});

       

        这里会默认把_id列也查询出来,这是主key.

     4):find查询所有记录,findOne查询满足条件的第一条

        

     5):查询表达式里含不等于的写法$ne

        db.stu.find({"age":{$ne:19}});

       

       从查询出来的结果可以发现,不含有age属性的文档也会被查询出来,怎么办?

      6): in的写法$ in[]

       db.stu.find({"age":{$in:[20,21,30,32]}}):

      7):not in 的写法$nin[]

       db.stu.find({"age":{$nin:[20,32]}});

      8):where的写法,这种写法不推荐,速度很慢

       db.stu.find({$where:{"this.age==19"}});   注意一定是两个等号,一个等号会将所有记录都查询出来,相当于赋值

      








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值