在MongoDB中,集合(collection)是一组文档(document)的集合。集合类似于关系型数据库中表的概念,但相比表集合结构更为灵活,相同集合中的文档结构可以是不一样的。
1. 查看数据库中的集合
查看数据库的集合使用show collections命令。
>show collections teams users ……
某些关系型数据库中,查询所有表的命令show tables,在MongoDB也可以用来查看集合。
>show tables teams users ……
db.getCollectionNames()用查看文档中所有集合的名称,其返回值是一个数组:
> db.getCollectionNames() [ "teams", "users", …… ]
如果需要查看单个集合,可以使用 db.getCollection("NAME")命令:
> db.getCollection("users")
newDB.users
集合中文档的查询请参考:MongoDB文档查询。
2. 创建集合
2.1 createCollection()方法创建集合
创建集合使用createCollection()方法,该方法语法结构如下:
db.createCollection(name, options)
name,String,要创建的集合名options,Document,可选。创建集合的选项capped,Boolean,可选。如果为true,则启用限制集合。限制集合是固定大小的集合,会达到其最大值时,自动覆盖最早的文档。如果指定true,则需要也指定size参数autoIndexID,Boolean,可选。如果为true,自动创建索引_id字段的。默认值是false。size,number,可选。表示限制集合的大小,capped参数为true时,需要设置此参数max,number,可选。表示限制集合允许的最大文档数。
例如,使用createCollection()创建student集合:
> db.createCollection("student")
{ "ok" : 1 }
2.2 insert()方法自动创建集合
MongoDB可以在集合未创建的情况下,直接使用insert()方法插入数据。插入数据时,如果集合还未创建,会自动创建该集合:
> db.sites.insert({name:"niefengjun.cn"})
WriteResult({ "nInserted" : 1 })
> show collections
sites
student
teams
users
……
3. 集合的重命名
集合的重命名使用renameCollection方法。
db.COLLECTION_NAME.renameCollection("NEW_NAME")
如,将student重命名为students
> db.student.renameCollection("students")
{ "ok" : 1 }
> show collections
sites
students
teams
users
……
4. 集合的删除
drop()方法用于从数据库中删除集合。
db.COLLECTION_NAME.drop()
如,删除students集合:
> db.students.drop() true > show collections sites teams users ……
