最近公司项目在做核心重构,我负责的项目核心重构改动不大,新需求开发不是很紧急,所以我在调研 MongoDB 的使用,后续会陆续发出我调研时整理的一些案例。

1.1 新增

1.1.1 新增单条数据,_id自动生成

db.user.insert({
    name:'zhangsan',
    base_info:{
            age:NumberInt(20),
            gender:'F'
        }
    }
)

1.1.2 新增单条数据,指定_id

db.user.insert({
    _id:1,
    name:'lisi',
    base_info:{
            age:NumberInt(20),
            gender:'F'
        }
    }
)

1.1.3 一次插入多个文档,是用数组形式

db.user.insert([
    {_id:2,name:'wangwu',mobile:13876778738},
    {name:'zhaoliu',fans:100}
]);

1.2 修改

1.2.1 文档替换

db.user.update({_id:1},{name:'lisix'});

1.2.2 修改某个值

db.user.update({_id:2},{$set:{name:'wangwux'}});

1.2.3 删除某个列

db.user.update({_id:2},{$unset:{mobile:1}});

1.2.4 某个列自增

db.user.update({name:'zhaoliu'},{$inc:{fans:1}});

1.2.5 重命名某个列

db.user.update({name:'zhaoliu'},{$rename:{fans:'follows'}});

1.2.6 修改多行

db.user.update(
    {name:{$exists:true}},
    {$set:{classroom:'new york'}}
)
db.user.update(
    {name:{$exists:true}},
    {$set:{classroom:'new york'}},
    {multi:true}
)

1.2.7 有则修改,没有则插入

db.user.update(
    {name:'zhangsan'},
    {$set:{floor:27}},
    {upsert:true}
)
db.user.update(
    {name:'tianqi'},
    {$set:{floor:27}},
    {upsert:true}
)

1.2.8 insert时,添加键值对

db.user.update(
    {name:'zhangwuji'},
    {$setOnInsert:{classroom:'new york'}},
    {upsert:true}
)
db.user.update(
    {name:'tianqi'},
    {$setOnInsert:{classroom:'new york'}},
    {upsert:true}
)

1.3 删除

1.3.1 删除单条数据

db.user.remove({name:'zhangwuji'})

1.3.2 删除全部数据(不演示)

db.user.remove({})

1.3.3 删除满足条件的第一条

db.user.remove({},true)

1.4 查询

1.4.1 查询全部内容

db.user.find()

1.4.2 返回某列

db.user.find({},{name:true})

1.4.3 查询指定内容,返回某些列

db.user.find(
    {classroom:{$exists:true}},
    {_id:false, name:true, classroom:true}
)

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/read/38