• mongo 增删改查


    1. use foobar
    2. show dbs
    3. show collections
    4. db.system.indexes.find()
    5. db.persons.find()
    6. db.persons.insert({name:"extjs4.0"})
    7. db.persons.findOne()
    8. db.persons.update({name:"extjs4.0"},{$set:{name:"extjs4.1"}})
    强硬的文档替换工作:
    db.text.update({name:"yfc"},{age:29})
    9. var p=db.persons.findOne();
    db.persons.update(p,{name:"uspcat"})
    10.db.persons.update({age:1},{$set:{age:2}});
    如果有两个age为一的话,我们只能修改一个。
    11.db.persons.remove({age:2});
    12.db.persons.insert({_id:"001",name:"yun"})//自己主动插入_id.
    13.db.persons.insert([{name:"34"},{name:"234"}])
    这样子插入的话,结果"0":{"name":"34","1":{"name","234"}}
    14. 批量插入,
    for(var i=0;i<10;i++){
    db.persons.insert({name:i})

    }
    15. save与insert的区别在于,在相同id的情况下,insert回报错。
    16.db.persons.remove()
    17.db.persons.remove({_id:1})
    18.插入或者更新
    db.persons.update({查询器},{修改器},true)
    19.实现批量修改
    db.persons.update({name:3},{$set:{name:"333"}},false,true)
    20.
    $set 用来指定一个键值对,如果存在键就进行修改,不存在则进行添加。
    $inc 只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作。
    $unset 他的用法很简单,就是删除指定的键。
    $push 如果指定的键是数组增追加新的数值,如果不存在指定的键则创建数组类型的键值对。
    $pushAll 用法和$push相似,可以批量添加数组。
    $addToSet 目标数组存在此项则不操作,不存在此项则加进去。
    $pop 从指定数组删除一个值,1删除最后一个数值,-1删除第一个数值。
    $pull 删除一个被指定的数值。
    $pullAll一次性删除多个指定的数值。
    $ db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}})
    ===================================================================
    find的用法:
    21. db.persons.find({},{name:1,age:1,country:1,_id:0});
    22.$lt < $lte <= $gt > $gte >= $ne !=
    23. 查询出年龄在25到27岁之间的学生 db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})
    24.查询出所有不是韩国籍的学生的数学成绩db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
    ============================================================
    包含或不包含$in 或$nin
    25.查询国籍是中国或美国的学生信息
    db.persons.find({country:{$in:[“USA”,“China”]}})
    26.查询国籍不是中国或美国的学生信息
    db.persons.find({country:{$nin:[“USA”,“China”]}})
    ==============================================================
    or查询$or
    27.查询语文成绩大于85或者英语大于90的学生信息
    db.persons.find({$or:[{$gte:85}},{e:{$gte:90}}],{_id:0,c:1,e:1})
    28.把中国国籍的学生上增加新的键sex
    db.person.update({country:”China”},{$set:{sex:”m”}})
    29.查询出sex等于null的学生
    db.persons.find({sex:{$in:[null]}},{country:1})
    ==============================================================
    30.查询出名字中存在”li”的学生的信息db.persons.find({name:/li/i},{_id:0,name:1})
    31.$not可以用到任何地方进行取反操作
    查询出名字中不存在”li”的学生的信息
    db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
    $not和$nin的区别是$not可以用在任何地方儿$nin是用到集合上的
    32.数组查询$all和index应用
    2.8查询喜欢看MONGOD和JS的学生
    db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})
    2.9查询第二本书是JAVA的学习信息
    db.persons.find({“books.1”:”JAVA”})
    db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
    33. .查询指定长度数组$size它不能与比较查询符一起使用(这是弊端)
    2.8查询出喜欢的书籍数量是4本的学生
    db.persons.find({books:{$size:4}},{_id:0,books:1})
    34.查询出喜欢的书籍数量大于3本的学生
    1.增加字段size
    db.persons.update({},{$set:{size:4}},false, true)
    2.改变书籍的更新方式,每次增加书籍的时候size增加1
    db.persons.update({查询器},{$push:{books:”ORACLE”},$inc:{size:1}})
    3.利用$gt查询
    db.persons.find({size:{$gt:3}})
    35.利用shell查询出Jim喜欢看的书的数量
    var persons = db.persons.find({name:"jim"}) while(persons.hasNext()){
    obj = persons.next();
    print(obj.books.length)
    }
    36. 1.mongodb 是NOSQL数据库但是他在文档查询上还是很强大的
    2.查询符基本是用到花括号里面的更新符基本是在外面
    3.shell是个彻彻底底的JS引擎,但是一些特殊的操作要靠他的 各个驱动包来成(JAVA,NODE.JS)
    ==================================================================

    1.注意在json中name:"3" 与"name":"3"是一样的,但是name:"3"与name:3就不同了。
    他不允许后边一个有引号另一个没哟引号。
    2.mongo没有事务,本来就不完事务的,事务是原子级的,效率低。
    3.couchDB里号称是有事务性的mongodb
    因为没用过,所以,你们懂的

     ***************************************************************************
    ***************************************************************************

    对update 的set的使用

    如果没有使用set是这个结果:

     

    如果使用set是这个结果:

    ********************************************************
    ********************************************************
    1.db.stats();

    2.db.persons.help()

    3.db-text这个集合不能通过db.[],只能db.getCollection()

    4.

    1.插入文档 db.[documentName].insert({})

    2.批量插入文档 shell 这样执行是错误的 db.[documentName].insert([{},{},{},……..]) shell 不支持批量插入 想完成批量插入可以用mongo的应用驱动或是shell的for循环

    3.Save操作 save操作和insert操作区别在于当遇到_id相同的情况下 save完成保存操作 insert则会报错

     

     正确的批量插入数据的方法:

    insert和save方法

    1.删除列表中所有数据 db.[documentName].remove() 集合的本身和索引不会别删除

    2.根据条件删除 db.[documentName].remove({}) 删除集合text中name等于uspcat的纪录 db.text.remove({name:”uspcat”})

    3.小技巧 如果你想清楚一个数据量十分庞大的集合 直接删除该集合并且重新建立索引的办法 比直接用remove的效率和高很多。使用drop方法。

    *************************

    insert如果输入的'_id'相同的话,是不能插入的。

    如果update含有第三个参数为true的话,那么没有表示insertorupdate,没有的话插入。

    update只更新最第一个相似的

    批量更新:

    ******************************************
    ******************************************

    $set的用法:如果有这个属性就更改,如果没有就添加。

    inc

     unset

    push

    pushAll

    addToSet

    使用修改器来完成局部更新操作

    数组定位器的用法:

    $修改器是放在外层的,而$查询器是放在内层。

    6. $addToSet与$each结合完成批量数组更新 db.text.update({_id:1000},{$addToSet:{books:{$each:[“JS”,”DB”]}}}) $each会循环后面的数组把每一个数值进行$addToSet操作

    7.存在分配与查询效率 当document被创建的时候DB为其分配没存和预留内存当修改操作 不超过预留内层的时候则速度非常快反而超过了就要分配新的内存 则会消耗时间

    8. runCommand函数和findAndModify函数 runCommand可以执行mongoDB中的特殊函数 findAndModify就是特殊函数之一他的用于是返回update或remove后的文档 runCommand({“findAndModify”:”processes”, query:{查询器}, sort{排序}, new:true update:{更新器}, remove:true }).value ps = db.runCommand({ "findAndModify":"persons", "query":{"name":"text"}, "update":{"$set":{"email":"1221"}}, "new":true }).value do_something(ps) http://www.cppblog.com/byc/archive/2011/07/15/151063.aspx

    9. mongo的查询

    第一个对象{}表示查询所有的,id:0 表示不显示id,其余的后边都是1表示该属性显示。

    10.

     

  • 相关阅读:
    VOL.1 利用vmware ThinApp 制作非XP下可以运行的IE6 【无插件版】(windows vista/7/8 x86/x64 )
    js中each的用法
    Math函数floor、round、ceil的区别
    JS中的prototype解析
    Ubuntu虚拟机搭建
    我的第一篇blog
    实验四+124+高小娟
    实验三+124+高小娟
    第5次作业+105032014124+高小娟
    第4次作业类测试代码+105032014124+高小娟
  • 原文地址:https://www.cnblogs.com/coding4/p/5590147.html
Copyright © 2020-2023  润新知