MongoDB集合的CURD

MongoDB集合的CURD

集合的创建

创建固定大小的集合

// capped collections 就是固定大小的collection
db.createCollection("students", { capped: true})

这样创建一个固定大小的集合会报错,

specify size:<n> when capped is true

需要指定一个size参数,表示集合的最大容量,如下,

db.createCollection("students", { capped: true,size: 256})

size参数解释:

Specify a maximum size in bytes for a capped collection. Once a capped collection reaches its maximum size, MongoDB removes the older documents to make space for the new documents. The size field is required for capped collections and ignored for other collections.

同时还可以指定max参数,表示集合的最大文档数量,

db.createCollection("students", { capped: true,size: 256,max: 2})

max参数解释:

The maximum number of documents allowed in the capped collection. The size limit takes precedence over this limit. If a capped collection reaches the size limit before it reaches the maximum number of documents, MongoDB removes old documents. If you prefer to use the max limit, ensure that the size limit, which is required for a capped collection, is sufficient to contain the maximum number of documents.

也就是说当max参数和size参数同时出现时,size参数的优先级要高。在达到最大文档数量的限制之前,如果达到了size参数的限制,mongo就会删除老的文档,来插入新的文档。如果想使用max参数的限制,那么务必保证在size参数限制之内能够保存max参数所指定的最大文档数量。


隐式的创建集合

如下代码如果执行集合的插入命令,那么就是隐式的创建一个集合

db.teachers.insert(
    {   
        "name":"hello world",
        "idNo":"1111111111111"  
     }
)


集合插入文档

集合可以插入复杂的文档,这里的文档说白了就是js对像(json对象),如下,

db.inventory.insert(
   {
     item: "ABC1",
     details: {
        model: "14Q3",
        manufacturer: "XYZ Company"
     },
     stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],
     category: "clothing"
   }
)

插入集合这样的文档对象,查询,

db.inventory.find()

MongoDB集合的CURD_第1张图片

就像这样,item,details,stock,category就像是关系型数据库的列(column),而其中details又包含了两个属性字段,stock又包含了两个element。


集合查询文档

查询所有

db.inventory.find()

查询一个

db.inventory.findOne()

根据条件来查询

db.inventory.find( { item: "EDF1" } )
//表示查询包含item属性字段并且属性字段等于EDF1的文档
db.inventory.find( { item: { $in: [ 'EDF1', 'ABC1' ] } } )
//使用$in查询操作符,表示查询包含item属性字段并且属性字段的值存在于[ 'EDF1', 'ABC1' ]的数组中的文档
db.inventory.find( { item: 'EDF1',category: "river"})
//使用and连接查询条件,两个查询条件item: 'EDF1' AND category: "river"。
db.inventory.find( { $or: [{ item: 'EDF1'},{category:"clothing"}] } )
//使用$or,表示有两个查询条件{ item: 'EDF1'},{category:"clothing"},满足一个即可

=======END=======

你可能感兴趣的:(MongoDB集合的CURD)