MongoDB Shell 集合方法

17 Mar 2025 | 5 分钟阅读

以下是用于不同场景的 MongoDB 集合方法。

#1: db.collection.aggregate(pipeline, option)

aggregate 方法计算集合/表或视图中数据的总值。

Pipeline: 它是一组大规模数据操作或阶段。它接受管道作为单独的参数,而不是作为数组中的一个元素。如果管道未指定为数组,则不会指定第二个参数。

Option: 传递 aggregate 命令的文档。仅当您将管道指定为数组时才可用。

命令字段

字段类型描述
explainbooleanexplain 字段指定返回有关管道处理的信息。
allowDiskUsebooleanallow disk use 字段允许您写入临时文件。
光标document此字段指定游标的初始批处理大小。此字段中的值是带有 batchSize 字段的文档。
maxTimeMS非负整数使用此字段指定处理游标操作的时间限制。
bypassDocument验证布尔值 具有此字段,可指定 $out 或 $merge 聚合阶段。它允许 aggregate 集合方法在操作期间绕过文档验证。
readConcerndocument您可以使用此字段指定 read concern level。
排序规则documentcollation 字段指定用于字符串比较的特定于语言的规则。

示例

这些示例使用包含以下文档的 library 集合

计算总和

输出

MongoDB Shell Collection Methods

指定排序规则

#2 db.collection.bulkWrite()

bulkWrite() 方法以执行顺序控制执行多个写入操作。此操作执行写入操作的数组。默认情况下,操作以特定顺序执行。

语法

输出

MongoDB Shell Collection Methods

操作的执行

insertOne: 它只将一个文档插入到集合中。


MongoDB Shell Collection Methods

Update one: 它只更新与集合中过滤器匹配的一个文档。

输出

MongoDB Shell Collection Methods

Update Many: 它更新集合中所有与过滤器匹配的文档。

replaceOne: 它替换集合中与过滤器匹配的单个文档。

# 3. db.collection.count(query, option)

count() 方法返回与 find 方法查询匹配的集合或视图的文档数量。

示例

我们将使用以下操作计算 javaTpoint 集合中的所有文档

现在,我们将计算 javaTpoint 集合中与查询匹配的所有文档,其中字段 tut_dt 大于 new Date ('01/01/2015')

输出

MongoDB Shell Collection Methods

#4. Db.collection.countDocuments(query, options)

countDocument() 方法返回与集合或视图的查询匹配的文档数量。它不使用元数据来返回计数。

语法

示例

以下示例将计算 javaTpoint 集合中所有文档的数量。

现在,我们将计算 javaTpoint 集合中与查询匹配的所有文档,其中字段 tut_dt 大于 new Date ('01/01/2015')

#5. db.collection.estimatedDocumentCount()

estimateddocumentCount() 方法计算集合或视图中的所有文档。此方法包装 count 命令。

语法

示例

以下示例将检索 javaTpoint 集合中所有文档的计数

#6. db.collection.createIndex()

它可以在集合上创建索引

语法

键: 对于字段上的升序索引,我们需要指定值 1,对于降序索引,我们需要指定值 -1。

示例

下面的示例在字段 tut_Date 上创建升序索引。

以下示例显示在 tut_Date 字段和 tut_code 字段上创建的复合索引。

下面的示例将创建一个名为 category_tutorial 的索引。该示例使用指定语言环境 fr 和比较强度的排序规则创建索引。

#7. db.collection.createIndexes()

createIndexes() 方法在集合上创建一个或多个索引。

语法

Keypatterns: 它是一个包含索引特定文档的数组。所有文档都具有字段-值对。对于字段上的升序索引,我们需要指定值 1,对于降序索引,我们需要指定值 -1

示例

在下面的示例中,我们考虑了一个包含类似于以下内容的文档的 employee 集合

输出

MongoDB Shell Collection Methods

现在,下面的示例在 products 集合上创建了两个索引

  • 按升序排列的 manufacturer 字段上的索引。
  • 按升序排列的 category 字段上的索引。

上述索引使用排序规则,该排序规则指定基本 fr 和比较强度  为 2。

#8. db.collection.dataSize()

data size 方法围绕 collStats(即 db.collection.stats())命令的输出进行封装。

#9. db.collection.deleteOne()

deleteOne() 方法从集合中删除一个文档。它替换与过滤器相似的第一个文档。您需要使用与唯一索引(如 id)相关的字段来进行完美的删除操作。

语法

示例

orders 集合具有以下结构的文档

以下操作删除 _id: objectId ("563237a41a4d6858 2da") 的订单

输出

MongoDB Shell Collection Methods