首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

4、mongodb的基本操作

2012-07-02 
四、mongodb的基本操作这篇主要说下mongodb的find,insert,update,delete以及索引的建立和删除1、find:引用自

四、mongodb的基本操作

这篇主要说下mongodb的find,insert,update,delete以及索引的建立和删除

1、find:

引用自:http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

4、mongodb的基本操作

注:筛选的时候默认包含_id,如果需要让返回的数据不包含_id,可使用:db.user.find({age:33},{a:1,b:1,_id:0})

?

数组查询:

$size 返回数组长度. ? db.news.find({tag:{$size:5}})

注:$size操作符并不能与其他查询操作符(子句)联合使用

?

$slice 返回子键筛选

db.test.find({foo:{$size:2}},{foo:{$slice:1}}) ?//返回结果中foo数组只返回第一个

?

子项定位:

db.user.find({"addr.nationality":"Chinese"})

?

2、insert

3、update

db.collection.update(?criteria,?objNew,?upsert,?multi?)

upsertmulti参数可选,upsert表示是否开启upsert模式(文档存在时更新,不存在时自动创建);multi表示是否开启多multi模式(默认情况下update操作只会更新第一个匹配到的文档,如果开启multi模式,则会更新所有匹配到的文档

4、mongodb的基本操作
$inc增加或减少数字的值,键不存在时会自动创建

$set设置指定键的值,键不存在时会自动创建

$unset$set的反操作,会删除键及键值

$push将元素追加到数组末尾,数组不存在会自动创建

$pushAll$push的批量操作版本

$addToSet同$pushAll,但会自动过滤重复元素

$pop{$pop : {key : ?1}}——从数组末尾移除元素

{$pop : {key : -1}}——从数组开头移除元素

$pull从数组中移除所有匹配的元素

$pullAll$pull的批量操作版本

$rename修改指定键的键名

$bit对整形键值执行位操作“与”、“或”等

?

?

?

4、delete

db.users.remove({z:'abc'}); ? //删除匹配的数据

db.users.remove(); ? //删除所有

?

5、索引的创建:

?

db.things.ensureIndex({

?? ?'j': 1

});

?

// 创建子文档索引

db.things.ensureIndex({

?? ?'user.Name': -1

});

?

// 创建复合索引

db.things.ensureIndex({

?? ?'j': 1, // 升序

?? ?'x': -1 // 降序

});

?

?

?

如果已经为子键创建了索引,那么其包含的子文档就不需要索引了,例如已经创建addr的索引,就不需要创建addr.city的索引了?db.user.ensureIndex( { addr: 1 } );?

创建唯一索引:

?

db.things.ensureIndex({

?? ?'firstName': 1,

?? ?'lastName': 1

}, {

?? ?// 指定为唯一索引

?? ?'unique': true,

?? ?// 删除重复记录

?? ?'dropDups': true

});

?

6、索引的删除

?

// 删除集合中的所有索引

db.things.dropIndexes();?

// 删除指定键的索引?

db.things.dropIndex({

?? ?x: 1,

?? ?y: -1

});?

注:drop collection 的时候同时也会删除在该collection上的索引,remove则不会

?

7、空间索引

创建:db.places.ensureIndex( { loc : "2d" } )

查找:db.places.find( { loc : { $near : [50,50] } } )

?

热点排行