当前位置:首页 » 网络管理 » mongodb如何匹配删除集合元素
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mongodb如何匹配删除集合元素

发布时间: 2023-05-01 06:16:25

1. mongodb如何新增和删除子多级文档

创建文档
向MongoDB插入数据,使用insert,
如:db.refactor.insert({"refactor's blog":"http://www.cnblogs.com/refactor"})
这个操作会给 文档 增加 一个"_id",键,并保存在数据库中。
批量插入
如果要插入多个文档,使用批量插入会快一些,批量化插入能传入一个有文档构成的数据给数据库
一次批量插入只是单个的TCP请求,避免了许多零碎的请求带来的开销.由于无需处理大量的消息头,
这样能减少插入时间.每当单个文档发送致数据库时,会有一个头部信息,告诉数据库对指定的集合做
插入操作.用批量插入的话,数据库就不用重复的处理每个文档的这种头部信息了.
当前版本MongoDB消息的最大长度是16M,使用批量插入是有这个限制的.
插入的原理和作用
当执行插入的时候,使用的驱动程序会将数据转换成BSON的形式,然后将其送入数据库.数据库解析
BSON,检验是否包含"_id"键并且不超过16M,除此之外,不做别的验证,就只是简单的将文档原样的
存入数据库.这样做的坏处是允许插入无效的数据,好处是能让数据库更加安全,远离注入式攻击.
所有的主流语言的驱动会在传送数据之前进行一些数据的有效性检查(文档是否超长,是否含非utf-8的字符,
是否使用了未知类型).同样也可以启动数据库服务器的时候使用--objcheck选项,这样服务器就会在插入
之前先检验文档结构的有效性,当然这样要牺牲性能.
查看doc文档转化为BSON的大小(以字节为单位),在shell中使用Object.bsonsize(doc)

删除文档
db.users.remove()
会删除users集合的所有文档,但不会删除集合本身,原有的索引也会保留.
remove函数可以接受一个查询文档作为可选参数,给定这个参数,只有符合条件的文档才会被删除.
db.users.remove({"name":"Refactor"})
删除数据的永久性的,不能撤销和恢复.
如果要清除整个集合,直接删除集合(然后重建索引)比删除集合中所有的文档要快.
删除集合:db.drop_collection("users")

2. 如何删除MongoDB数据库中的文件

一、Insert操作

Insert操作是MongoDB插入数据的基本方法,对目标集合使用Insert操作,会将该文档添加到MongoDB并自动生成相应的ID键。文档结构采用类似JSON的BSON格式。常见的插入操作主要有单条插入和批量插入两种形式。插入时只是简单地将文档存入数据库中,不进行额外的验证,也不会执行代码,所以不存在注入式攻击的可能。

1、单条插入

四、瞬间完成

上面的插入,删除和更新操作都是瞬间完成的,不需要等待数据库响应。这样的实现可以获取高性能,速度非常快,只会受客户端发送速度和网络速度的制约。但由于不会获取服务器状态,所以不能保证操作顺利完成。这对于付费系统,安全性较高的系统是不可行的,此时对这些操作需要使用的安全版本。安全版本会在操作执行后立即运行getLastError命令,来检查是否执行成功。如果失败一般会抛出可捕获的异常,然后可以在代码中处理。

3. 怎么删除mongodb指定数据库的集合

1. 删除”ban_friends_id”:”BAN121113″数据
> db.test_ttlsa_com.remove({"ban_friends_id":"BAN121113"})
2. 删除所有数据
> db.test_ttlsa_com.count()
2
> db.test_ttlsa_com.remove({})
> db.test_ttlsa_com.count()
0
3. 删除集合
> show collections
system.indexes
test_ttlsa_com
> db.test_ttlsa_com.drop()
true
> show collections
system.indexes
4. 删除整个数据库
> show dbs
local 0.078125GB
ttlsa_com 0.203125GB
> db
ttlsa_com
> db.ttlsa_com.getDB()
ttlsa_com
> show collections
system.indexes
> db.dropDatabase()
{ "dropped" : "ttlsa_com", "ok" : 1 }
> db
ttlsa_com
> show dbs
local 0.078125GB
在执行删除整个数据库前,要谨慎,执行db命令查看当前的使用的数据库,可确保误删除,造成数据的丢失,是个不错的习惯啦。

4. mongodb如何删除集合中的指定键值对

其实没必要删除,冗余的字段对于MongoDB的性能没有任何影响。
如果非要删除某个字段,先将这个数据整个读出来,然后修改好在更新进去。

以java的驱动为例:

DBObject dbo = db.getCollection("test").findOne(query);//query为查询条件,查询出待修改的数据
dbo.removeField("filed1"); //把待删除的字段删除掉,如field1这个键值对
b.getCollection("test").update(query, dbo); //更新

5. mongodb如何删除集合中的指定键值对

mongodb删除集合中指定的键值对用drop方法:
drop() 方法
MongoDB 的 db.collection.drop() 是用来从数据库中删除一个集合。
语法:
drop() 命令的基本语法如下
db.COLLECTION_NAME.drop()

示例:
首先,检查可用的集合在数据库 mydb
>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
yii
>

现在删除集合名称为 mycollection
>db.mycollection.drop()
true
>

再次检查到数据库中的集合列表
>show collections
mycol
system.indexes
yii
>

drop() 方法将返回 true,如果选择成功收集被丢弃,否则将返回 false