1、插入记录

mongodb的_id可以设置为long类型吗 mongodb 指定_id_数据


有几点注意一下:


(1)、不需要预先创建一个集合,在第一次插入数据的时候会自动创建


(2)、在文档中其实可以存储任何结构的数据,当然在实际应用中我们存储的还是相同类型文档的集合


(3)、每次插入数据时候集合都会有一个ID,名字叫做_id



插入多条数据

mongodb的_id可以设置为long类型吗 mongodb 指定_id_字段类型_02



2、_id key


在MongoDB中,每一个集合都必须有一个叫做_id的字段,字段类型默认为ObjectId,换句话说,字段类型可以不是ObjectId


mongodb的_id可以设置为long类型吗 mongodb 指定_id_结果集_03


虽然_id的类型可以自由指定,但是在同一个集合中必须唯一,如果插入重复值的话,系统将会抛出异常,如:

mongodb的_id可以设置为long类型吗 mongodb 指定_id_数据_04



3、查询记录


(1)、普通查询


 从一个查询中返回一个游标对象,可以通过find()来查询,他返回一个任意结构的集合,通过while来输出


mongodb的_id可以设置为long类型吗 mongodb 指定_id_字段类型_05

 上面的例子显示了游标风格的迭代输出,.hasNext() 函数告诉我们是否还有数据,如果有,则可以条用.next()函数


 当我们使用的是JavaScript shell,可以用到JS的特性,forEach就可以输出游标,如下面的例子就是调用forEach()来循环输出,forEach()必须定义一个函数提供给每个游标元素使用。

mongodb的_id可以设置为long类型吗 mongodb 指定_id_字段类型_06


 在MongoDb shell 中,也可以把游标当作数组来用:

mongodb的_id可以设置为long类型吗 mongodb 指定_id_结果集_07


 使用游标的时候要注意:占用内存的问题,特别是很大的游标对象,有可能会内存溢出。所以应该用迭代的方式来输出。以下的示例则是把游标转换成真实的数组类型:

mongodb的_id可以设置为long类型吗 mongodb 指定_id_数据_08



(2)、条件查询


 根据指定的条件来查询


mongodb的_id可以设置为long类型吗 mongodb 指定_id_数据_09



(3)、findOne()语法


 为了方便考虑,MongoDB shell避免游标可能带来的开销,提供一个findOne()函数,这个函数和find()函数一样,不过他返回的是游标里第一条数据,或者返回null,即空数据


mongodb的_id可以设置为long类型吗 mongodb 指定_id_结果集_10



(4)、通过limit限制结果集数量


 如果要限制结果集的长度,那么可以调用limit方法


mongodb的_id可以设置为long类型吗 mongodb 指定_id_字段类型_11