MongoDB常用命令查询基础类

来源:互联网 发布:程序员网 编辑:程序博客网 时间:2024/05/17 04:26

1.windows 启动:

F:\DingSai\Mongodb\bin

--windows启动 cmd到bin目录下
mongod --dbpath F:\DingSai\Mongodb\data --logpath=F:\DingSai\Mongodb\logs\mongodb.log --logappend
查看本机http://localhost:27017/

 

linux启动:

启动配置mongodb 1.
去mongodb/bin目录下执行
./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/logs --fork 




2.登录mongodb
bin下执行
./mongo




3.ObjectId存储格式
{ "_id" : ObjectId("54c6f191e20483f272ff1e88"), "name" : "user1" }
两个key    对象id                                name     user1


ObjectId:24位字符串,由一组十六进制的字符构成,每个字节两位的十六进制数组,总共用了12字节的存储空间。
前四个字节0-3表示时间;再三个字节4-6表示机器码;7-8再两个字节表示进程ID;最后三个字节9-11表示自增长计数器保证同一秒不会产生重复数据允许256的3次方等于16777216条记录的唯一性;


ObjectID详解:http://blog.csdn.net/dingsai88/article/details/43191423


4.key  values值的种类:  

 

1.  Null:表示空值或者不存在的字段:{“one”:null}

2.  布尔类型:{“one”:true}

3.  32位整数:mongoDB控制台使用js引擎输入,js仅支持64位浮点数,所以被自动转义.

4.  64位整数:被自动转义成64位浮点数。

5.  64位浮点数:{“one”:2.02}

6.  字符串:{“one”:”hello”}

7.  符号:控制台不支持将自动转义成字符串

8.  ObjectId类型:12位ID:ObjectID(“ddddadfadfadfdadfdadfdadf”)

9.  日期:{“one”:new Date()}

10. 正则:{“one”:/ho/i

11. 代码:{“one”:function{/****/}}

12. 数组:{X:[“a”,”b”,[“c”,”d”]]}

13. 内嵌文档:{“x”:{“name”:”Tom”,”age”:20}}

 



5:常用命令查询类 :

1.   隐式创建数据库和表

2.   查看所有数据库:dbs;

3.   查看当前数据库:db;

4.   查看当前数据库集合:show tables;

5.   显示当前数据库的收集集合:showcollections;

6.   当前数据库c1集合里插入一个json对象:db.c1.insert({name:"user1"});

7.   查看c1集合收集器(表)对象:db.c1.find();

8.   插入一个json对象: db.c1.insert({name:"user3",age:30});

9.   删除一个集合(表):db.c1.remove();不知道为啥删不掉db.c1.remove({});db.c1.remove({_id:2})单条删除。

10. 修改一条记录:db.c1.update({id:1},id:3);修改id等于1的为3

11. db.c1.insert({name:"dingsai",age:27,sex:"nan"});插入多个字段.

12. db.c1.update({name:"dingsai"},{$set:{name:"dingsai2"}});更新其中一个字段

13. db.c1.update({name:"dingsai2"},{$set:{firstname:"ding"}});在现有数据中插入新字段。

14. db.c1.insert({_id:1,name:"user3"});insert时_id如果有相同数据报index错误;db.c1.save({_id:1,name:”user3”});则不报错,直接更改数据。

15. db.c1.insert({name:"wenzhang",post:{title:1,cnt:111}});插入子json数据。

16. db.c1.insert({name:"wenzhang",post:[1,2,3,4,5,6]});插入子数组

17. for(i=1;i<10;i++){db.c1.insert({name:"ding"+i});};多行出入。

18. db.c1.find({name:"ding5"});查询name:”ding5”的数据。(select * from c1 where name=”ding5”);

19. db.c1.find({name:"dingTest"},{name:1,_id:0});查找name=”dingTest” 并且只返回name列的数据。(默认都返回_id)

20. db.c1.find({age:{$gt:5}});查找age大于5的值greater than

21.  db.c1.find({age:{$lt:5}});查找 age小于5的值less than

22.  db.c1.find({age:{$gte:5}});大于等于5的值 greater than or equal

23.  Db.c1.find({age:{$lte:5}});小于等于5的值 less than or equal

24. db.c1.find().count();db.c1.count();查询c1 Collections中有多少数据。

25. db.c1.find().limit(3);显示前3条

26. db.c1.find().skip(5).limit(2);跳过前5条取2条。

27. db.c1.find().sort({age:-1});age降序排列(1|-1);1是升序排列。

28. db.c1.find().sort({age:-1}).skip(6).limit(3);年龄倒叙,跳过前6取3条。

29. db.c1.find().sort({age:-1}).skip(6).limit(3).count();count默认是false,还是统计全部数据;加入count(1),或者count(ture),才统计筛选过的数据。

30. db.c2.insert({name:"user1",post:[1,2,3,4,5]});插入数组。

31. db.c2.find({post:{$all:[1,4]}});查找post属性数组里含有1,2的数组。

32. db.c2.find({name:{$exists:1}});判断字段名是否存在;返回含有name字段名的数据。

33. db.c2.find({name:{$exists:0}});判断字段名是否不存在;返回不含有name字段名的数据。

34. db.c1.find({age:{$mod:[2,1]}});取余age字段模2余1的数;(1,3,5,7…)

35. db.c1.find({age:{$ne:7}});不等于not equals;年龄不等于7的数据

36. db.c1.find({age:{$in:[5,6,8]}});age在结果当中的。和sql中的一样。 

37. db.c1.find({age:{$nin:[7,5]}});$nin 不在结果集当中,不是7和5的数据。

38. db.c1.find({$or:[{name:"user2"},{age:7}}]});$or或者等于;name等于user2或者age等于7的数据。

39. db.c1.find({$nor:[{name:"user1"},{age:7}]});$nor不等于;name不等于user1和age不等于7的数据

40. db.c2.find({post:{$size:2}});$size字段值的个数;post字段值个数是两个的结果。  

                                                                                      

41. db.c1.find({name:/user2/i});正则表达式;name字段以user2开头的数据。

42. db.c1.distinct("name");distinct获得不重复的值;和sql一样

43. 练习db.c1.find({name:/user/i},{name:1,age:1,_id:0},2,5);返回name和age字段,跳过前5条,取2条。

44. db.c3.insert({name:"user1",post:[{tit:1},{tit:2},{tit:3}]});查询db.c3.find({"post.tit":2});“post.tit”查询子json

45. db.c3.find({post:{$elemMatch:{tit:3,tit:2}}});”post.tit包含2和3的记录,跟上边一条一样。”

46.  var cur=db.c1.find();cur.forEach(function(x){print(tojson(x))});定义游标,打印结果集成json;

47. db.c4.find({age:null});null;查询age是null和没有age属性的集合

48. db.c4.find({"age":{$exists:1,$in:[null]}});查询age存在并且为null的集合。(db.c4.find({age:{$type:10}}))意思相同

$type:10值域




0 0
原创粉丝点击