MongoDB创建集合,删除集合,插入字段,capped参数作用

mogodb语法:

1.查询集合

db.getCollection('tshare_a').find({})

2.创建集合

db.createCollection("tshare_a")

3.删除整个集合

db.tshare_a.drop()

4.插入字段

db.tshare_a.insert(
{
   "_id" : ObjectId("57172b0f657f8bbb34d70147"),
    "picUrl" : "URL",
    "slidingSequence" : "a",
    "delFlag" : "1",
    "createTime" : ISODate("2018-05-01T16:00:00.000Z"),
    "updateTime" : ISODate("2018-06-01T16:00:00.000Z"),
    "adSupplier":"广告供应商"
}
)
  1. 删除集合中某字段所在集合

     db.tshare_a.remove
     ({"_id" : ObjectId("57172b0f657f8bbb34d70147")})
    
     db.tshare_a.remove({'picUrl':'URL'})
    

6.capped参数
capped对删除有影响,新建集合时capped:ture那么不能删除整个集合

以下资料对capped描述错误,其他描述正确,可以参考:

资料:https://www.linuxidc.com/Linux/2013-12/94417.htm
MongoDB建表:
完整的命令如下:
db.createCollection(name, {capped: , autoIndexId: , size: , max } )

name:集合的名字
capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
size:限制集合使用空间的大小,默认为没有限制
max:集合中最大条数限制,默认为没有限制
autoIndexId:是否使用_id作为索引,默认为使用(true或false)
size的优先级比max要高

常用方法介绍:
a、一般来说,我们创建集合用db.createCollection(name),如:db.createCollection(“log”),创建一个名字为log的集合,没有任何的大小,数量限制,使用_id作为默认索引;

b、限制集合空间的大小:db.createCollection(“log”,{size:1024})或db.createCollection(“log”,{capped:true,size:1024}),创建一个名字为log集合,限制它的空间大小为1M,如果超过1M的大小,则会删除最早的记录;
c、限制集合的最大条数:db.createCollection(“log”,{max:1024}),创建一个名字为log集合,最大条数为1024条,超过1024再插入数据的话会删除最早的一条记录。这个不能使用capped:true,否则会报错;
d、即限制最大条数有限制使用空间大小:db.createCollection(“log”,{size:1024,max:1024})或db.createCollection(“log”,{capped:true,size:1024,max:1024}),限制集合最大使用空间为1M,最大条数为1024条

7.mongoDB遇到的问题1

新建了一个集合:
在这里插入图片描述
查询不出来东西?
在这里插入图片描述
可以插入成功:
在这里插入图片描述
可以查出插入的值
在这里插入图片描述

8.mongoDB遇到的问题2(关于capped)
在这里插入图片描述
重新创建不带capped条件的集合:

db.tshare_a.drop()
db.createCollection("tshare_a")

可以remove:
在这里插入图片描述

遇到的错就这么多。。。。以后遇到再补充。。。。

9.资料
https://blog.youkuaiyun.com/li123128/article/details/79477825

### MongoDB 中固定集合 (Capped Collection) 的详解 #### 1. 固定集合的概念 固定集合Capped Collection)是 MongoDB 提供的一种特殊类型的集合,它具有固定的大小和先进先出(FIFO)的行为模式。一旦达到其预定义的大小限制,最早的文档会被自动删除以腾出空间给新插入的数据[^1]。 #### 2. 主要特性 - **固定大小**:在创建时需指定最大磁盘占用字节数 `size` 和可选的最大文档数量 `max`。当集合中的数据量超过设定值时,旧数据会按照 FIFO 原则被移除。 - **高效插入操作**:由于内部实现类似于环形缓冲区结构,写入性能非常高,适合高频率的日志记录或实时监控场景。 - **顺序读取支持**:提供天然的时间序列排序功能,在查询时不需额外索引来保持插入顺序。 - **不可更新/扩展单条记录**:如果尝试修改现有文档使其超出原始分配的空间,则该次更新失败并抛异常;因此建议设计阶段充分考虑字段长度变化可能性。 #### 3. 使用场景分析 基于以上特点,以下是几个典型的应用领域: - 日志管理:用于保存应用程序产生的各种事件日志或者错误报告等短生命周期的信息; - 缓存机制:作为临时存储区域来加速频繁访问的小型对象检索过程; - 时间序列数据库模拟:可以用来构建简单的物联网传感器数值采集平台或者其他需要按时间维度组织大量同质化样本点的地方。 #### 4. 创建方法演示 下面展示如何通过 Python 驱动程序 pymongo 来声明一个新的 capped collection: ```python from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client['test_database'] # Create a new capped collection named 'log_messages' with maximum storage of 5MB and up to 10k entries. result = db.create_collection( "log_messages", capped=True, size=5 * 1024 * 1024, # Size limit in bytes max=10000 # Optional document count cap ) print(f"Capped collection created successfully? {bool(result)}") ``` 此脚本片段展示了怎样利用 PyMongo 库连接本地实例上的测试数据库,并初始化名为 log_messages 的受容量约束的新表单[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值