zoukankan      html  css  js  c++  java
  • mongo03

    Mongo存储的单位是文档,文档是js对象,
    use test2
    db.createCollection("stu")//隐士创建库显示创建表
    db.stu.insert({sn:001,name:"xiaoming"})
    db.stu.find()
    
    use test2
    db.stu.insert({sn:001,name:"xiaoming"})//隐士创建库和表
    db.stu.find()
    
    Id是自动生成的,但是_id可以手动指定
    Db.collectionName.insert({_id:12,age:78,name:’lisi’});
    
    增加多个文档
    use test2
    db.stu.insert(
    [
        {_id:12,sn:001,name:"xiaoming1"},
        {_id:13,sn:002,name:"xiaoming2"},
        {_id:14,sn:003,name:"xiaoming3"},
    {sn:004,name:"xiaoming4"},
     {sn:005,name:"xiaoming4"},
     {sn:006,name:"xiaoming4"},
     {sn:007,name:"xiaoming4"},
     {sn:0022,name:"xiaoming4"},
    
    ])
    db.stu.find():
    { "_id" : 12, "sn" : 1, "name" : "xiaoming1" }
    { "_id" : 13, "sn" : 2, "name" : "xiaoming2" }
    { "_id" : 14, "sn" : 3, "name" : "xiaoming3" }
    { "_id" : ObjectId("5a449e1483c2d5efb2d581e4"), "sn" : 4, "name" : "xiaoming4" }
    
    删:remove
    语法: db.collection.remove(查询表达式, 选项);
    use test2
    db.stu.remove(
        {"sn":2}
    )
    db.stu.find()
    选项是指  {justOne:true/false},是否只删一行, 默认为false
    
    注意
    1: 查询表达式依然是个json对象
    2: 查询表达式匹配的行,将被删掉.
    3: 如果不写查询表达式,collections中的所有文档将被删掉.
    
    例1: db.stu.remove({sn:’001’});
    删除stu表中 sn属性值为’001’的文档 
    例2: db.stu.remove({gender:’m’,true});
    删除stu表中gender属性为m的文档,只删除1行.
    
    
    
    改  update操作
    改谁? --- 查询表达式
    改成什么样? -- 新值 或 赋值表达式
    操作选项 ----- 可选参数
    
    语法: db.collection.update(查询表达式,新值,选项);
    例:
    db.news.update({name:'QQ'},{name:'MSN'});
    是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},
    结果: 文档中的其他列也不见了,改后只有_id和name列了.
    即--新文档直接替换了旧文档,而不是修改
    
    如果是想修改文档的某列,可以用$set关键字
    db.collectionName.update(query,{$set:{name:’QQ’}})
    
    修改时的赋值表达式
    $set  修改某列的值
    $unset 删除某个列
    $rename 重命名某个列
    $inc 增长某个列
    use test2
    db.wk.insert(  //全部是json格式
        {   
            name:'悟空',
            jinggu:true,
            sex:'m',
            age:500
        }
    )
    db.wk.find():
    {
        "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"),
        "name" : "悟空",
        "jinggu" : true,
        "sex" : "m",
        "age" : 500.0
    }
    db.wk.update(
        {name:"悟空"},
        {
            $set:{name:"都战胜"},
            $unset:{jinggu:1},
            $rename:{sex:”gender”},
            $inc:{age:19}
    },
    {upsert:true},  //插入‘都战胜’
    {multi:true},
    )
    db.wk.find()
    {
        "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"),
        "name" : "都战胜",
        "age" : 519.0,
        "gender" : "m"
    }
    
    
    $setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
    
    Option的作用:
    {upsert:true/false,multi:true/false}
    Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)
    
    例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});
    如果有name=’wuyong’的文档,将被修改
    如果没有,将添加此新文档
    
    例:
    db.news.update({_id:99},{x:123,y:234},{upsert:true});
    没有_id=99的文档被修改,因此直接插入该文档
    
    multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
    例:
    db.news.update({age:21},{$set:{age:22}},{multi:true});
    则把news中所有age=21的文档,都修改
    
    
    查: find, findOne
    语法: db.collection.find(查询表达式,查询的列);
    Db.collections.find(表达式,{列1:1,列2:1});
    
    例1:db.stu.find()
    查询所有文档 所有内容
    
    例2: db.stu.find({},{gendre:1})
    查询所有文档,的gender属性 (_id属性默认总是查出来)
    > db.wk.find({},{age:1})
    { "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"), "age" : 576 }
    { "_id" : ObjectId("5a44ae6846de25cd7e79c5f4"), "age" : 19 }
    { "_id" : ObjectId("5a44ae7646de25cd7e79c5f9"), "age" : 19 }
    { "_id" : ObjectId("5a44af5a46de25cd7e79c61a"), "age" : 20056 }
    
    例3: db.stu.find({},{gender:1, _id:0})
    查询所有文档的gender属性,且不查询_id属性
    例3: db.stu.find({gender:’male’},{name:1,_id:0});
    查询所有gender属性值为male的文档中的name属性
  • 相关阅读:
    【设计模式】—— 观察者模式Observer
    【设计模式】—— 备忘录模式Memento
    【设计模式】—— 中介者模式Mediator
    【领域驱动】—— 领域驱动导读
    【设计模式】—— 迭代模式Iterator
    【设计模式】—— 解释器模式Interpret
    【设计模式】—— 命令模式Commond
    【设计模式】—— 职责链模式ChainOfResponsibility
    【设计模式】—— 代理模式Proxy
    系统设置参数说明11
  • 原文地址:https://www.cnblogs.com/yaowen/p/8136722.html
Copyright © 2011-2022 走看看