1. MongoDB结构包括文档、集合、数据库。文档类似于SQL中的每一行记录,集合类似于table
2. MongoDB每一个文档都有一个默认的主键_id。对于用户是透明的,创建文档时会自动创建一个唯一的ID。当然也可以自己指定内部_id。因为MongoDB以_id为主键,所以可以插入内容完全一样的文档。
因此如果输入两条一样的命令:
db.users.insert({name:"hjy846"})
db.users.insert({name:"hjy846"})
将会产生两个一样的数据,但_id不一样。
3. $in和$nin相当于SQL语法里的IN和NOT IN。其中$nin会把没有相应字段的文档也列出来。
4. $all表示必须满足所有条件才成立。比如:
db.users.find({age:{$all:[5,7]}})
表示age必须包含5和7
5. $mod表示取模:
db.things.find({j:{$mod:[5,1]}})
表示除5余1
6. $size匹配元素的个数,仅对[1,2,3]类型有效:
db.things.save({age:1})
db.things.find({age:{$size:1}})
匹配不出age:1记录
7. MongoDB太强大了,支持正则表达式匹配。
db.things.find({name:{$not:/^h.*/}})
查询name不带h开头的文档
8. 下面4个查找语句等价:
db.users.find({age:{$gt:20}})
db.users.find({$where:"this.age > 20"})
db.users.find("this.age > 20")#注意不需要{}
f = function(){return this.age > 20;} db.users.find(f)
9. 以下返回的count个数不受前面条件的限制:
db.users.find().skip(2).limit(5).count()
如果要使count受限,则应该传count(true)或者count(非0)
10. sort()为对结果排序:
db.users.find().sort({name:1})
1为对name进行升序排列。-1为对name降序排列