4.3采集CRUD功能概述

下一节将解释Collection对象的各个函数。

在集合上执行的最常见操作是创建、读取、更新、删除(CRUD)操作。为了加快查找操作,建议适当使用索引

Collection.add ()

Collection.add ()函数用于在数据库中存储文档。方法执行单个文档或文档列表execute ()函数。

方法创建集合Schema.createCollection ()函数在插入文档之前。方法将文档插入到现有集合中Schema.getCollection ()函数。

的示例说明如何使用Collection.add ()函数。该示例假设测试模式存在,并且集合my_collection不存在。

//创建一个新的集合var myColl = db.createCollection('my_collection');//插入文档myColl。add({name: 'Laurie',年龄:19}).execute();//一次插入多个文档myColl。添加([{名称:“以”,年龄:54},{名称:卢卡斯,年龄:32}]). execute ();

有关更多信息,请参见CollectionAddFunction

Collection.find ()

find ()函数用于在集合中搜索文档,相当于从数据库中检索记录。这需要一个SearchConditionStr作为参数,以指定应从数据库返回的文档。如何形成一个SearchConditionStr所需的表达式取决于被搜索的JSON文档的结构。要基于文档中嵌套的元素搜索集合,您需要想要搜索的元素的JSON路径。看到JSON路径语法参阅有关如何识别JSON文档中的特定元素的信息。例如,假设一个集合包含关于国家的文档,例如:

{国民生产总值:.6,独立年份:1967,名称:"西兰",代码:"SEA",人口统计:{预期寿命:79,人口:27},地理:{大陆:"欧洲",地区:"不列颠群岛",表面积:193},政府:{政府形式:"君主制",国家元首:"迈克尔·贝茨"}})

去寻找那些拥有大陆值设置为欧洲,到元素的路径腿为地理位置.该分支可以包含多个元素,使用(*)语法。把腿分开大陆元素,使用句点(.)的性格。因此,该发现可能包含一个documentPathLastItem以…形式表达:

'欧洲'在$.geography[*].大陆

对于MySQL JSON函数中使用的路径,作用域总是被搜索或操作的文档,由前导$字符表示。因此,导语美元。应该是可选的。根据您使用的语言,完整的查找函数可以是:

收集。find(':name in geography[*].Continent') .bind('name', 'Europe') .execute()

有几种方法,例如字段()sort ()跳过()而且限制()可以拴在find ()函数进一步细化结果。有关更多信息,请参见第3.2节,“方法链接”

fetch ()函数实际上触发了操作的执行。该示例假设测试模式存在,并且集合my_collection的存在。

//使用集合'my_collection' var myColl = db.getCollection('my_collection');//找到一个字段'name'以'L'开头的文档var docs = myColl查找('name like:param')。限制(1)。bind(“参数”,' L % ') . execute ();打印(docs.fetchOne ());//获取所有字段'name'以'L'开头的文档docs = myColl。查找('name like:param')。bind(“参数”,' L % ') . execute ();var myDoc;while (myDoc = docs.fetchOne()) {print(myDoc);}

有关更多信息,请参见CollectionFindFunction

Collection.modify ()

图4.1 Collection.modify()语法图

内容在周围的文本中有描述。

Collection.remove ()

图4.2 Collection.remove()语法图

内容在周围的文本中有描述。