13-创建集合
5.3.2 创建集合
创建集合 在本节中,您将使用Database对象来新建集合。这个示例首先新建一个数据库并显示其中的集合,然后新建一个集合并再次显示数据库中的集合。 请执行如下步骤,编写一个在数据库中新建集合的MongoDB shell脚本。 1.确保启动了MongoDB数据库。 2.在文件夹code/hour05中新建一个文件,并将其命名为collection_create.js。 3.在这个文件中输入程序清单5.5所示的代码。这些代码连接到本地MongoDB服务器、创建一个数据库、显示其中的集合并新建一些集合。 4.将这个文件存盘。 5.打开一个控制台窗口,并切换到文件夹code/hour05。 6.在控制台提示符下使用命令mongo启动MongoDB shell。 7.使用下面的MongoDB shell命令执行第2步创建的文件: 8.查看程序清单5.6所示的输出。这些输出表明,最初的集合列表是空的,随后的集合列表中包含新创建的集合以及集合system.indexes。集合system.indexes包含新集合的默认_id索引。 程序清单5.5 collection_create.js:使用MongoDB shell在数据库中创建集合 程序清单5.6 collection_create.js-output:使用MongoDB shell在数据库中创建集合的输出 ▲
要存储文档,必须在MongoDB数据库中创建集合,为此需要使用数据库句柄调用方法createCollection(name, [options])。其中参数name是要创建的数据库的名称,而可选参数options是一个对象,可使用表5.4所示的属性来定义集合的行为。
| 属性 | 描述 | | :----- | :----- | :----- | :----- | | capped | 布尔值。为true时将创建一个固定集合,其大小不能超过属性size指定的值。默认为false | | autoIndexID | 布尔值。为true时将自动为加入到集合中的每个文档创建_id字段,并根据这个字段创建一个索引。对于固定集合,应将这个属性设置为false。默认为true | | size | 指定固定集合的大小,单位为字节。 | | max | 指定固定集合最多可包含多少个文档。为给新文档腾出空间,将删除最旧的文档 |
例如,下面的命令在数据库testDB中新建一个集合:
use testDB
db.createCollection("newCollection")
下面的代码行在数据库testDB中新建一个名为newCollection的集合,并将autoIndexID设置成了false:
use testDB
db.createCollection("newCollection", {autoIndexID: false})
▼ Try It Yourself
load("collection_create.js")
01 mongo = new Mongo("localhost");
02 newDB = mongo.getDB("newDB");
03 collections = newDB.getCollectionNames();
04 print("Initial Collections:");
05 printjson(collections);
06 newDB.createCollection("newCollectionA");
07 newDB.createCollection("newCollectionB");
08 print("After Collection Creation:");
09 collections = newDB.getCollectionNames();
10 printjson(collections);
Initial Collections:
[ ]
After Collection Creation:
[ "newCollectionA", "newCollectionB", "system.indexes" ]