MongoDB的常用操作

显示数据库

显示已有的数据库

show dbs

显示当前的数据库

db

创建、使用数据库

use可以切换到指定的数据库,如果该数据库不存在时,会创建该数据库。
use nodejsBook

switched to db nodejsBook

插入文档

插入单个文档

db.file1.insertOne({title:'文档1',time:'2020-01-01',author:{age:18,name:'leeamazing'}})

在上述例子’file1’就是一个集合,如果该集合不存在则会创建。
执行插入命令后控制台会输出

{
	"acknowledged":true,
	"insertedld":ObjectId("xxxxxxxxxxx")
}

如果没有指定文档中的"_id"字段,那么MongoDB会自动给该字段进行赋值,类型为ObjectId。
要查询上述例子,可以用db.collection.find()方法,如下:
db.file1.find({title:'文档1'})

插入多个文档

db.file2.insertMany([{title:'文档1',time:'2020-01-01',author:{age:18,name:'leeamazing'}},
{title:'文档2',time:'2019-01-01',author:{age:18,name:'leeamazing'}},
{title:'文档3',time:'2018-01-01',author:{age:18,name:'leeamazing'}}])
//控制台输出结果
{
	"acknowledged":true,
	"insertedld":[
		ObjectId("xxxxxxxxxxx"),
		ObjectId("xxxxxxxxxxx"),
		ObjectId("xxxxxxxxxxx")
	]
}

要查询上述文档信息,可以用db.collection.find()方法,例如
db.file2.find({})

查询文档

除了db.collection.find()方法来查询文档,还有其他方式。

嵌套文档查询

db.file2.find({author:{age:18,name:'leeamazing'}})
需要注意的是整个嵌套文档需要与数据中的字段完全匹配,包括字段顺序,例如db.file2.find({author:{name:'leeamazing',age:18}})就与集合的任何文档都不匹配。

嵌套字段查询

db.file2.find({'author.name':'leeamazing'})

使用查询运算符

db.file2.find({'author.age':{&lt:20}})
查询年龄小于20的,使用了小于运算符($lt)

多条件查询

db.file2.find({'author.age':{&lt:20},'author.name':'leeamazing'})

修改文档

修改文档有以下3种方式:
db.collection.updateOne
db.collection.updateMany
db.collection.replaceOne

修改单个文档

db.collection.updateOne()方法用来修改单个文档,其中可以使用"$set"操作符修改字段的值。

db.file1.updateOne({'author.name':'leeamazing'},{$set:{'author.name':'leelee'}})
//控制台输出结果
{'acknowledged':true,'matchedCount':1,'modifiedCount':1}

上述例子将leeamazing修改为leelee,由于是修改单个文档,所以即便leeamazing有很多个,也只会修改查询到的第一个。

修改多个文档

db.file2.updateMany({'author.name':'leeamazing'},{$set:{'author.name':'leelee'}})
//控制台输出结果
{'acknowledged':true,'matchedCount':3,'modifiedCount':3}

替换单个文档

用db.collection.replaceOne()方法可以替换除了’_id’字段外的整个文档,并且只会替换查询到的第一个。

db.file1.replaceOne({'author.name':'leelee'},{title:'文档2',time:'2019-01-01',author:{age:18,name:'leeamazing'}},})
//控制台输出结果
{'acknowledged':true,'matchedCount':1,'modifiedCount':1}

删除文档

删除文档有以下两种方式:
db.collection.deleteOne()
db.collection.deleteMany

删除单个文档

db.file2.deleteOne({'author.name':'leeamazing'})

删除多个文档

db.file2.deleteMany({'author.name':'leeamazing'})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值