2019独角兽企业重金招聘Python工程师标准>>>
不适用:高度事务性的场景,复杂多表查询,传统商业智能应用。
2.保持mongodb开机自启动:echo "/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb/data" >>/etc/rc.local
3.杀掉进程 pkill或者kilall
4.数据类型:null:表示空值或者不存在{“name":null} 布尔类型: {“name":true} ,32位整数:将被转义位64位浮点数,
64位整数:同上。64位浮点数:默认类型如 {“money":12.02} 字符串类型: {“name":‘各地分公司’} ,
ObjectId类型:文档唯一的12位id,由时间戳,机器吗 pid 计数器组成。
日期: {“one":new Date()} 正则:{“name":/ho/i} 采用JS的正则语法
代码:{“name":function(){}} 数组:{“x":["a","b",["c","d"]]} 值可以数组,也可以在数组嵌套数组
5. db.blog.insert和db.blog.save的区别:当插入一条主键相同的数据,insert会报错,不允许插入,而save则会更新也就是覆盖原来的值。
6.用JS循环插入数据 举例:
for(i=1;i<=20;i++){
7.注意count的用法:如集合有10条数据,db.blog. count()输出10。如果前面加条件,例:db.blog.sort({"age":-1}).skip(2).limit(2).count();按理应该结果是2,但实际是10,因为count忽略了前面的条件,count有两个参数,1代表不忽略0代表忽略,默认是0.
注意sort的位置:放在前面和后面结果是不同的,表示先排序后执行条件还是先执行条件后排序。
8.查询name为user1并且age为1的数据: db.blog.find({"name":"user1","age":1})
查询 name为user1或者age为1的数据: db.blog.find({$or:[{"name":"user1"},{"age":10}]})
10.distinct过滤重复记录如: db.blog.distinct("name")
11.数组内对象查找 比如查找post里面tit为1的数据: db.ceshi.find({"post.tit":1})
12.游标:
比如X=db.blog.find()回车将得到数据就集合所有记录
定义变量x:var x=db.blog.find();回车输入x.hasNext()判断是否有下一条记录返回true或者false.如果返回true说明有数据,回车输入x.next()则输出第一条记录,继续回车输入x.next()输出下一条,直到x.haveNext返回false,如果继续x.next()将报错.
那么如何查询呢,有这么几种方法:1, db.blog.find({"age":{$exists:1,$in:[null]}})查询age存在的然后筛选出值为null的
2. db.blog.find({"age":{$type:10}})查出age值类型为10的记录
14.有如下有一条数据: { "_id" : ObjectId("51c1c8121a7338d22dcd6013"), "name" : "user1", "tiezi" : [ { "title" : "124" }, { "title" : "34543" }, { "title" : "345345" } ] }