MongoDB中的增删改。没有查

《MongoDB的安装》 一文中,有数据库创建,集合(数据表)的创建。今天我们就要开始向集合中操作数据了。

数据库相关命令

命令说明命令
查看所有数据库show databases;
使用数据库use db_name
创建数据库use new_db_name
查询当前所在库db
删除当前数据库db.dropDatabase();
数据库相关帮助db.help;

注意命令的大小写!!

创建集合

  • 显示创建
> use dong
> db.createCollection('t1');
{ "ok" : 1 }
  • 隐式创建

向不存在的表中,直接插入数据

> db.t_emp.insert({name:'dd_jiang'});
WriteResult({ "nInserted" : 1 })

我们在这里造一些测试数据,然后继续接下来的测试学习。

插入数据

一次插入一个值

语法:db.集合名称.insert({"key":"values" , "key1":"values1" , .... })

> db.t_emp.insert({name:"dd.jiang", age:23 , sex:"F" , bir:"2020-05-01"});
WriteResult({ "nInserted" : 1 })

插入后查询数据

> db.t_emp.find();
{ "_id" : ObjectId("5e6d3e47aa1903faf1c3ce0c"), "name" : "dd_jiang" }
{ "_id" : ObjectId("5e6d484b6f33220fb3e090cd"), "name" : "dd.jiang", "age" : 23, "sex" : "F", "bir" : "2020-05-01" }

!! 注意:默认MongoDB在插入数据中自动创建一个 _id

那么我们可以改变 _id 的值,可以这样做

> db.t_emp.insert({"_id":"xxxx", age:23 , sex:"F" , bir:"2020-05-01"});
WriteResult({ "nInserted" : 1 })
> db.t_emp.find();
{ "_id" : ObjectId("5e6d3e47aa1903faf1c3ce0c"), "name" : "dd_jiang" }
{ "_id" : ObjectId("5e6d484b6f33220fb3e090cd"), "name" : "dd.jiang", "age" : 23, "sex" : "F", "bir" : "2020-05-01" }
{ "_id" : ObjectId("5e6d48e66f33220fb3e090ce"), "name" : "MongoDB", "age" : 23, "sex" : "F", "bir" : "2020-05-01" }
{ "_id" : "xxxx", "age" : 23, "sex" : "F", "bir" : "2020-05-01" }

一次插入多个值 (数组的概念)

语法:db.集合名称.insert ( [ {"key":"values" , ...} , {"key1":"values1" , .... } ]);

  • 支持js代码插入多个值
    在这里我们可以造一些数据,在后面的测试使用
for ( var i=0 ; i<50 ; i++) {
  db.t_user.insert({id:i , name:"dong" , age:n = i + 10})} ;

查询数据

> db.t_user.find();
{ "_id" : ObjectId("5e6d4b346f33220fb3e090cf"), "id" : 0, "name" : "dong", "age" : 10 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d0"), "id" : 1, "name" : "dong", "age" : 11 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d1"), "id" : 2, "name" : "dong", "age" : 12 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d2"), "id" : 3, "name" : "dong", "age" : 13 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d3"), "id" : 4, "name" : "dong", "age" : 14 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d4"), "id" : 5, "name" : "dong", "age" : 15 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d5"), "id" : 6, "name" : "dong", "age" : 16 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d6"), "id" : 7, "name" : "dong", "age" : 17 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d7"), "id" : 8, "name" : "dong", "age" : 18 }
{ "_id" : ObjectId("5e6d4b346f33220fb3e090d8"), "id" : 9, "name" : "dong", "age" : 19 }

表中数据量较多,默认只显示20行,输入"IT" 可继续查看更多。

删除数据

删除集合中所有数据

db.t_user.remove();   

按照条件删除数据,多条件时为并且的关系

db.t_user.remove({name:"dong" , age:19 });   

修改数据

修改整行,所有列

这种方式更新时,将符合条件的行删除,在插入
db.t_user.update({更新条件} , {更新内容} )

db.t_user.update( {id:0} ,
                  {name:"jiang"} )

修改指定列,添加新列

保留原有的列, 修改指定的列值, 添加新的列和值
db.t_user.update({更新条件} , {$set:{更新内容}} )

db.t_user.update( {id:1} , 
                  {$set:{name:"jiang", add:"BJ"}} )

修改所有满足条件的行

修改多条数据, 默认只更新一条数据
db.t_user.update({更新条件} , {$set:{更新内容}} , {multi:true} )

db.t_user.update( {name:"dong"} , 
                  {$set:{add:"BJ"}} , 
                  {multi:true}  
                )

插入未满足更新的行

修改多条数据, 如果没有满足条件的行,那么进行插入操作
db.t_user.update({更新条件} , {$set:{更新内容}} , {multi:true , upsert:true} )

db.t_user.update(  {name:"Dr.Wang"} , 
                   {$set:{add:"BJ"}} ,      
                   {multi:true} ,
                   {upsert:true}  
                )

修改自增

某个values在原值基础上增加 + n
db.t_user.update({id:1} , {$inc:{age:10}} )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值