日期:2014-05-16  浏览次数:20558 次

Mongo官方文档翻译 (二)

官方文档地址:http://docs.mongodb.org/manual/applications/create/


创建


在数据库中的四个基本操作(CRUD),创建操作是指那些把记录或文档集合添加到
MongoDB中的聚集中的操作。
概述:
你可以利用下面的任一基本操作在MongoDB中创建文档集合:
insert
create with save
create with upsert
下列是MongoDB中所有的insert操作:
1.如果你试图插入一条没有_id字段的文档,客户端库或mongod实例会自动添加_id字段并设置
将其填充给一个唯一的ObjectId字段!
2.对于写相关的操作,如果你指定一个_id字段,那么该_id字段在聚集中必须是唯一的;否则,
 mongod会返回一个duplicate key exception。
3.BSON文档的最大大小事16MB。
文档类型的最大值有助于确定一个单独的文档不能占用过多的内存以及在传输过程中占用过多的带宽。
为了保存大于最大值的文档,MongoDB提供了GridFSB API。

4.文档在字段名称上有如下的约束:
1.字段_id是预留的用作主键的字段,字段的值必须是在聚集中唯一的,不变的,并且可以使除了数组
的其他任何类型。
2.字段名不能以$开始。
3.字段名称不能包含.。

注意:以下的驱动版本中,所有的写相关操作都会发出一个getLastError命令,来确认写操作的结果:
C#, version 0.7
Java, version 2.10.0
Node.js, version 1.2
Perl, version 0.601.1
PHP, version 1.4
Python, version 2.4
Ruby, version 1.8

{getLastError:1}

1.插入操作


insert()是将一个或多个文档插入到MongoDB聚集中的基本方法,该方法有如下的句式:

db.collection.insert( <document> )
 
SQL中类似的操作:insert()类似于INSERT操作!

下面的示例演示了insert()的用法:
1.如果聚集并不存在(你可以在mongo shell中通过show collections 操作来列出存在的聚集),
insert()方法会在第一次插入数据的时候创建聚集。如下所示:如果聚集bios不存在,insert操作
会创建这个聚集:

db.bios.insert(
  {
     _id: 1,
     name: { first: 'John', last: 'Backus' },
     birth: new Date('Dec 03, 1924'),
     death: new Date('Mar 17, 2007'),
     contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ],
     awards: [
               {
                 award: 'W.W. McDowell Award',
                 year: 1967,
                 by: 'IEEE Computer Society'