Go教程

MongoDB语法

本文主要是介绍MongoDB语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、mongodb基础语法

1.1 数据库

1、查询数据库:show dbs;
2、创建数据库:use mytest;#如果数据库不存在,则会创建数据库,并没有真正创建数据库, 而是插入了一些数据之后, 才会创建数据库和集合
3、删除数据库:db.dropDatabase();

1.2 表操作

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 } ]);
 

1.3、更新

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如,,inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    writeConcern :可选,抛出异常的级别。
db.table1.update({id:1}, {$set:{name:"修改数据"}})

1.4、删除

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。
1、根据条件删除:db.table1.remove({id:1},1)
2、清空之前的数据:db.table1.remove({})
3、删除匹配的多份文档中的第一份文档:db.table1.deleteOne({status:"A"})

1.5、简单查询

db.collection.find(query, projection)

语法说明:

  • 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.6、模糊查询&or查询

模糊查询:

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}
    ]
});

 


                    
这篇关于MongoDB语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!