mongodb谁开发的,mongodb开源

  mongodb谁开发的,mongodb开源

  选择一个数据库。

  启动mongoshell后,默认情况下,您的会话将使用测试数据库作为上下文。每当您在mongo中输入以下命令时,都会显示当前数据库:

  使用db操作指令确认您的会话使用mydb数据库作为上下文,它将返回当前数据库的名称:

  此时,如果再次输入showdbs操作指令,结果将不会包含mydb,因为如果您没有将数据插入该数据库,MongoDB将不会创建该数据库。创建收藏并插入文档。本节描述插入数据的过程。

  2.4版的新特性:showdatabases也返回数据库列表。

  显示mongo帮助文本

  在任何时候,您都可以在mongoshell中使用以下操作来获取帮助文本:

  此外,还可以追加。help()到一些JavaScript方法、任何游标对象以及db和db.collection对象,以返回附加的帮助信息。

  创建收藏并插入文档。

  在本节中,您将学习将文档插入到mydb(一个新的数据库)中的新集合中。

  MongoDB在第一次使用时会隐式地创建集合和数据库:在插入数据之前不需要创建数据库或集合。此外,因为MongoDB使用动态模式,所以在将文档插入集合之前,不需要指定文档的结构。

  插入单个文档

  在mongoshell中使用以下操作指令来确认当前上下文是mydb数据库:

  如果前面的操作指令mongo没有返回mydb,使用下面的操作指令用mydb的上下文设置数据库:

  使用下面的操作序列将两个文档J和K插入到集合things中:

  当插入第一个文档时,mongod创建mydb数据库和things集合。

  对things集合执行查询操作,以确认文档存在于things集合中。在如下操作中使用find()方法:

  { _ id :ObjectId( 4c 2209 F9 f 3924d 31102 BD 84 a ), name : mongo }

  { _ id :ObjectId( 4c 2209 fef 3924d 31102 BD 84 b ), x : 3 }

  所有MongoDB文档都必须有一个unique _id字段。这些操作没有显式地为_id字段指定值,所以mongo在将该字段插入集合之前会为它创建一个惟一的ObjectId值。

  在mongoshell中,可以使用for循环向things集合添加多个文档:

  { _ id :ObjectId( 4c 2209 F9 f 3924d 31102 BD 84 a ), name : mongo }

  { _ id :ObjectId( 4c 2209 fef 3924d 31102 BD 84 b ), x : 3 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 856 ), x : 4, j : 1 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 857 ), x : 4, j : 2 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 858 ), x : 4, j : 3 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 859 ), x : 4, j : 4 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 a ), x : 4, j : 5 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85b ), x : 4, j : 6 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 c ), x : 4, j : 7 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85d ), x : 4, j : 8 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 e ), x : 4, j : 9 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 f ), x : 4, j : 10 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 860 ), x : 4, j : 11 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 861 ), x : 4, j : 12 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 862 ), x : 4, j : 13 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 863 ), x : 4, j : 14 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 864 ), x : 4, j : 15 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 865 ), x : 4, j : 16 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 866 ), x : 4, j : 17 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 867 ), x : 4, j : 18 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 868 ), x : 4, j : 19 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 869 ), x : 4, j : 20 }

  有关插入新文档的更多信息,请参见insert()文档。

  使用光标

  当您查询一个集合时,MongoDB将返回一个包含查询结果的游标对象。然后mongoshell遍历光标显示所有结果。shell遍历光标20次以显示前20个结果,然后等待遍历剩余结果的请求,而不是一次返回所有结果。这可以防止mongo一次显示几千甚至几百万个结果。

  it操作允许您在shell中遍历接下来的20个结果。在前面的步骤中,光标只包含另外两个文档,因此只显示另外两个文档。

  本节中的步骤展示了使用游标的其他方法。有关更易于理解的游标文档,请参见遍历返回的游标。

  使用循环遍历光标

  在MongoDB的JavaScript shell中,查询things集合,将生成的cursor对象赋给变量C:

  如果光标有一个文档,hasNext()函数返回true。next()方法返回下一个文档。printjson()方法将文档呈现为类似json的格式。

  操作的结果如下,并且ObjectId值是唯一的:

  { _ id :ObjectId( 4c 2209 F9 f 3924d 31102 BD 84 a ), name : mongo }

  { _ id :ObjectId( 4c 2209 fef 3924d 31102 BD 84 b ), x : 3 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 856 ), x : 4, j : 1 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 857 ), x : 4, j : 2 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 858 ), x : 4, j : 3 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 859 ), x : 4, j : 4 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 a ), x : 4, j : 5 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85b ), x : 4, j : 6 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 c ), x : 4, j : 7 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85d ), x : 4, j : 8 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 e ), x : 4, j : 9 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 85 f ), x : 4, j : 10 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 860 ), x : 4, j : 11 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 861 ), x : 4, j : 12 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 862 ), x : 4, j : 13 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 863 ), x : 4, j : 14 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 864 ), x : 4, j : 15 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 865 ), x : 4, j : 16 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 866 ), x : 4, j : 17 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 867 ), x : 4, j : 18 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 868 ), x : 4, j : 19 }

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 869 ), x : 4, j : 20 }

  将游标用于数组操作

  您可以将光标对象作为数组来操作。请参考以下步骤:

  1.在mongoshell中,查询things集合并将生成的cursor对象赋给变量c:

  varc=db.things.find()

  2.使用以下操作在数组中查找索引为4的文档:

  printjson(c[4])

  MongoDB返回以下结果:

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 858 ), x:4, j:3}

  在游标中使用数组索引符号访问时,mongo首先调用cursor.toArray()方法,将游标返回的所有文档加载到RAM中。然后,该索引可用于生成的数组。该操作完全遍历光标并耗尽它。

  对于非常大的结果集,mongo可能会耗尽可用内存。

  有关游标的更多信息,请参见遍历返回的游标。

  查询指定的文档。

  MongoDB有一个强大的查询系统,它允许您选择和过滤集合中的文档以及指定的字段和值。关于MongoDB中的所有查询,请参见查询文档和阅读。

  在这个过程中,通过将“查询文档”作为参数传递给find()方法,可以查询things集合中的指定文档。查询文档指定查询返回文档时必须匹配的条件。

  按照以下步骤查询指定的文档:

  在mongoshell中,通过将查询文档{name:mongo}作为参数传递给find()方法,查询名称字段值为mongo的所有文档:

  将{x:4}这个查询文档传递给find()作为参数,查询x字段值为4:

  { _ id :ObjectId( 4c 220 a 42 f 3924d 31102 BD 856 ), x : 4, j : 1 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 857 ) x :4, j :2 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 858 ) x :4, j :3 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 859 ), x : 4, j :4 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 a ), x : 4, j :5 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 b ), x : 4, j :6 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 c ), x : 4, j : 7 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85d ), x : 4 , j :8 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 e ), x : 4, j :9 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 f ), x : 4, j : 10 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 860 )x :4, j : 11 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 861 ) x :4, j : 12 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 862 ):x :4, j :13 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 863 )x :4, j :14 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 864 ) x :4, j : 15 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3112 BD 865 ) x :4, j : 16 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3112 BD 866 ) x :4, j : 17 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 867 ):x :4, j :18 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 868 ) x :4, j : 19 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 869 ) x :4, j : 20 }

  像前面一个查询一样查询所有x个字段值为四的文档,但仅返回j。你好的值。蒙戈布也会返回_id字段值,除非你显示地排除。你可以在查找()方法的第二个参数上添加{j:1}文档作为投影。操作类似以下这样:

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 856 ), j:ˇ

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 857 ), j:2 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 858 ), j:}

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 859 ), j:

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 a ), j:5 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 b ), j:6 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 c ), j:7 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85d ), j:8 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 e ), j:9 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 85 f ),j:` 10 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 860 ), j:11 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 861 )j:ˇ12 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 862 ), j:13 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 863 ), j:14 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 864 )j:ˇ15 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 865 ), j:16 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 866 ), j:ˇ17 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 867 )j:ˇ18 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 868 ), j:19 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 869 ),j:` 20 }

  限制结果集中的文档数目

  通过限制你的应用程序必须通过网络获取的数据量,你可以限制结果集的数量来提升性能。

  想要指定结果集中文档的最大数量,在游标上调用限制()方法,如下:

  { _ id:对象id( 4c 2209 F9 f 3924d 3102 BD 84 a )名称:蒙戈

  { _ id :对象id( 4c 2209 fef 3924d 3102 BD 84 b ), x :3 }

  { _ id :对象id( 4c 220 a 42 f 3924d 3102 BD 856 ), x : 4, j :1 }

  注:本文翻译自http://份文件。mongbd。org/manual/tutorial/getting-started/# insert-个人文档,敬请指正。

mongodb谁开发的,mongodb开源