1、查询数据库:show dbs; 2、创建数据库:use mytest;#如果数据库不存在,则会创建数据库,并没有真正创建数据库, 而是插入了一些数据之后, 才会创建数据库和集合 3、删除数据库:db.dropDatabase();
1、创建表
1、显示所有集合(表):show collections; 2、创建集合(表):db.createCollection("table5"); 3、删除所有集合(表):db.dropDatabase(); 4、删除某一张集合(表):db.table5.drop();
2、创建固定集合(表) 【table6】,整个集合空间大小 6142800 B, 文档最大个数为 10000 个。
db.createCollection("table6", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
3、插入数据,如果表不存在则会自动创建表
#插入简单表 db.table1.insertOne( { id:1, name:"测试数据", age:12 }) db.table1.insert( { id:3, name:"测试数据2", age:23 }) #插入复杂表数据 db.table2.insertOne( { id:1, name:"测试数据", age:12, child:[ {id:1,name:"子节点1"}, {id:1,name:"子节点2"}, {id:1,name:"子节点3"}, ], house:["3号楼1","3号楼2"] }) #插入多条
db.table7.insertMany([ { "_id" : 1, "char" : "Brisbane", "class" : "monk", "lvl" : 4 }, { "_id" : 2, "char" : "Eldon", "class" : "alchemist", "lvl" : 3 }, { "_id" : 3, "char" : "Meldane", "class" : "ranger", "lvl" : 3 } ]);
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
说明:
db.table1.update({id:1}, {$set:{name:"修改数据"}})
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
说明:
1、根据条件删除:db.table1.remove({id:1},1) 2、清空之前的数据:db.table1.remove({}) 3、删除匹配的多份文档中的第一份文档:db.table1.deleteOne({status:"A"})
db.collection.find(query, projection)
语法说明:
1、查询数据:db.table1.find({id:1}) 2、查询单条数据:db.table1.findOne({id:1}) 3、以易读的方式来读取数据:db.table1.find().pretty();
操作 | 格式 | 范例 | 类似sql语句 |
---|---|---|---|
等于 | {<key>:<value>} |
db.col.find({"by":"菜鸟教程"}).pretty() | where by = '菜鸟教程' |
小于 | {<key>:{$lt:<value>} } |
db.col.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
小于或等于 | {<key>:{$lte:<value>} } |
db.col.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
大于 | {<key>:{$gt:<value>} } |
db.col.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
大于或等于 | {<key>:{$gte:<value>} } |
db.col.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {<key>:{$ne:<value>}} |
db.col.find({"likes":{$ne:50}}).pretty() | where likes != 50 |
模糊查询:
1、模糊查询:db.table1.find({id:1,"name":{ $regex:/XXX/ }}) 2、查询以某字段为开头的文档:db.table1.find({"name":{$regex:/^XXX/}}) 3、查询以某字段为结尾的文档:db.table1.find({"name":{$regex:/XXX^/}}) 4、查询忽略大小写:db.table1.find({"name":{$regex:/XXX/i}}) #i 是其的一个选项,代表忽略大小写的意思。
OR查询:
db.table1.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()
子查询:
db.table2.find({ $or:[ {"child.name":"子节点1"}, {"child.id":1} ] });