设为首页 收藏本站
查看: 1857|回复: 0

[经验分享] MongoDB学习笔记(一)--基础

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-2-24 13:44:56 | 显示全部楼层 |阅读模式
本帖最后由 fdfdkkk 于 2014-2-24 13:47 编辑

Insert                                                                                       
MongoDB在执行插入时,首先会将插入的数据转换成BSON格式。然后MongoDB数据库会对BSON进行解剖,并检查是否存在_id建。
>doc = {
    "_id" : 1,
    "author" : "yyd",
    "title" : "MongoDB Test",
    "text" : "this is a test",
    "tags" : [
    "love",
    "test"
    ],
    "comments" : [
    {
        "author" : "yyd_guest",
        "comment" : "yes"
    },
    {
        "author" : "yyd_admin",
        "comment" : "no"
    }
    ]
}
> db.yyd.insert(doc);
Query                                                                                       
全部查找
201256199683901.jpg
返回除了 tags 字段外的所有字段
201256212253616.jpg
返回 tags = test 除了 comments 的所有列
201256222422330.jpg
返回 id=1 的 title 字段
201256228948159.jpg
  • <, <=, >, >=
201256244771446.jpg
大于 $gt、小于 $lt、大于等于 $gte、小于等于 $lte
  • $all
$all 操作类似$in 操作,但是不同的是,$all 操作要求数组里面的值全部被包含在返回的记录里面。
201314133208983.jpg
  • $exists
$exists 操作检查一个字段是否存在。
201314146561956.jpg
$exists:true代表返回存在这个键的值。
$exists:false代表返回不存在这个键的值。
  • $mod
> db.user.find("this._id%2==1");> db.user.find({_id:{$mod:[2,1]}});
两句话一样的效果。
  • $ne
$ne 意思是 not equal,不等于。
201314166406529.jpg
  • $in
$in 操作类似于传统关系数据库中的 IN。
201314186584645.jpg
  • $nin
$nin 跟$in 操作相反。
  • $or
201327047143015.jpg
  • $nor
$nor 跟$or 相反。
  • $size
$size 操作将会查询数组长度等于输入参数的数组。
201327053417373.jpg
  • skip
跳过前 2 条记录。
201327067391131.jpg
  • limit
每页返回 3 条记录
201327085968432.jpg
  • sort()
sort()方法对返回记录集按照指定字段进行排序返回,1 表示升序,-1 表示降序。
201327114341434.jpg
  • count()
count()方法返回查询记录的总数目。
201332311694514.jpg

Remove                                                                                    
201358435273212.jpg

Update                                                                                    
  • update()
db.collection.update( criteria, objNew, upsert, multi )
参数说明:
Criteria:用于设置查询条件的对象
Objnew:用于设置更新内容的对象
Upsert:如果记录已经存在,更新它,否则新增一个记录
Multi:如果有多个符合条件的记录,全部更新
注意:默认情况下,只会更新第一个符合条件的记录
  • save()
如果存在更新它,如果不存在,新增记录。
201358442289827.jpg
  • $inc
增加1,对int等有效。
对一个_id=3 的 user 的年龄进行加 1,两种方法。
201358450912957.jpg
201358468258286.jpg
  • $set
{ $set : { field : value } }
把 field 的值设置成 value,当 field 不存在时,增加一个字段,类似 SQL 的 set 操作,value 支持所有类型。
  • $unset
{ $unset : { field : 1} }
      删除给定的字段 field。
  • $push
{ $push : { field : value } }
如果 filed 是一个已经存在的数组,那么把 value 追加给 field;
如果 field 原来不存在,那么新增 field 字段,把 value 的值赋给 field;
如果 field 存在,但是不是一个数组,将会出错。
  • $pushAll
{ $pushAll : { field : value_array } }
功能同$push,只是这里的 value 是数组,相当于对数组里的每一个值进行$push操作。
  • $addToSet
{ $addToSet : { field : value } }
如果 filed 是一个已经存在的数组,并且 value 不在其中,那么把 value 加入到数组;
如果 filed 不存在,那么把 value 当成一个数组形式赋给 field;$pop
如果 field 是一个已经存在的非数组类型,那么将会报错。
  • $pop
{ $pop : { field : 1 } }
删除数组中最后一个元素
{ $pop : { field : -1 } }
删除数组中第一个元素
  • $pull
{ $pull : { field : _value } }
如果 field 是一个数组,那么删除符合_value 检索条件的记录;
如果 field 是一个已经存在的非数组,那么会报错。
  • $pullAll
{ $pullAll : { field : value_array } }
  • $rename
{ $rename : { old_field_name : new_field_name }
重命名指定的字段名称。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-15202-1-1.html 上篇帖子: MongoDB服务器启动异常 1067 下篇帖子: MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表