这篇主要介绍下mongodb的基础操作。
1、create
(1)、创建数据库,创建表:mongodb不需要这些创建操作,看我存储篇中举的例子。
(2)、创建索引 :
db.user.ensureIndex({'name': 1});
// 创建子文档索引
db.user.ensureIndex({'addr.mobile': -1});
// 创建复合索引
db.user.ensureIndex({
'name': 1, // 升序
'sex': -1 // 降序
});
如果已经为子键创建了索引,那么其包含的子文档就不需要索引了,例如已经创建addr的索引,就不需要创建addr.mobile的索引了 db.user.ensureIndex( { addr: 1 } );
创建唯一索引:
db.user.ensureIndex({
'name': 1,
// 指定为唯一索引
'unique': true,
// 删除重复记录
'dropDups': true
});
同样可以创建地理空间索引,db.places.ensureIndex( { loc : "2d" } )
2、drop
3、find
注:筛选的时候默认包含_id,如果需要让返回的数据不包含_id,db.user.find({},{name:1,age:1,_id:-1})
4、insert
5、update
db.collection.update( criteria, objNew, upsert, multi )
upsert和multi参数可选,upsert表示是否开启upsert模式(文档存在时更新,不存在时自动创建);multi表示是否开启多multi模式(默认情况下update操作只会更新第一个匹配到的文档,如果开启multi模式,则会更新所有匹配到的文档。
$inc 增加或减少数字的值,键不存在时会自动创建
$set 设置指定键的值,键不存在时会自动创建
$unset $set的反操作,会删除键及键值
$push 将元素追加到数组末尾,数组不存在会自动创建
$pushAll $push的批量操作版本
$addToSet 同$pushAll,但会自动过滤重复元素
$pop {$pop : {key : 1}}——从数组末尾移除元素
{$pop : {key : -1}}——从数组开头移除元素
$pull 从数组中移除所有匹配的元素
$pullAll $pull的批量操作版本
$rename 修改指定键的键名
$bit 对整形键值执行位操作“与”、“或”等
6、delete
更多高级用法请查看mongodb的官方文档。