查询和写入操作命令

2024年9月6日 | 7分钟阅读

MongoDB Insert 命令

它在集合中插入一个或多个文档,并返回一个包含所有输入状态的文档。insert 方法内部使用MongoDB提供的insert 命令。

语法

参数字段

字段类型描述
insertstring它是我们想要插入元素的集合名称。
文档数组它是我们想要插入到集合中的文件数组。
orderedboolean如果设置为true,当插入操作失败时,它会返回结果而不插入insert数组中列出的任何剩余文档,反之亦然。
writeConcerndocument它是一个定义插入命令写入关注的文档。
bypass
文档
验证
boolean我们可以使用此字段插入不符合验证要求的文档。

示例

让我们在books集合中插入一个文档。

MongoDB Delete 命令

我们可以使用delete 命令从集合中删除任何文档。一个delete 命令中有多个删除规范。我们不能在capped collection上使用它。delete 命令由MongoDB提供的删除方法内部使用。

语法

参数字段

字段类型描述
删除string它是我们想要删除元素的目标集合的名称。
删除数组它是一个删除语句数组,我们想对其执行删除操作。
orderedboolean如果设置为true,当插入操作失败时,它会返回结果而不插入insert数组中列出的任何剩余文档,反之亦然。
writeConcerndocument它是一个定义删除命令写入关注的文档。
qdocument它是匹配删除的查询。
limit整数我们可以使用此字段限制要删除的匹配文档。指定0删除所有匹配文档,反之亦然。
排序规则document它是一个可选字段,用于定义操作所使用的排序规则。
语法
collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

示例

以下示例通过指定limit 2,从状态等于A的book集合中删除一个文档。

MongoDB Update 命令

update 命令更改集合中的文档。它包含多个更新语句。它由MongoDB驱动程序提供的update 方法使用。

语法

命令字段

字段类型描述
update(更新)string它是我们想要更新数组的目标集合的名称。
更新数组它是用于对给定集合执行更新操作的更新语句数组。
orderedboolean如果设置为true,它是一个可选字段。它将返回结果而不执行剩余的更新操作,反之亦然。
writeConcerndocument它是一个表示更新命令写入关注的文档。它描述了从MongoDB请求的对独立MongoDB的写入操作的确认级别。
bypass
文档
验证
布尔值。它使更新操作能够绕过文档验证。
qdocument它是匹配我们想要更新的文档的查询。
udocument它是存储更新操作符表达式的文档。
upsertboolean如果此字段设置为true,则如果没有文档与查询匹配,它将执行插入操作。
multiboolean如果此字段设置为true,它将更新所有符合查询条件的文档。
排序规则document它指定字符串比较的特定语言规则。
语法
collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}
arrayfilters数组它是一个文档数组,描述我们想要修改的数组元素。
hint字符串/
document
它是一个文档,指定用于支持查询谓词的索引。

示例

让我们创建一个学生集合。

run 命令使用$set 和$inc 运算符更新成员等于“john”的文档状态。

MongoDB find 命令

find 命令用于执行查询并返回第一组结果和游标ID,我们可以从中构建游标。

语法

命令字段

字段类型描述
findstring在此字段中,我们可以定义集合的名称。
filterdocument它过滤查询。
排序document它是一个包含查询排序细节的文档。
projectiondocument它是一个包含投影规范的文档,用于确定要包含在返回文档中的字段。
hintstring它是一个文档,将索引名称指定为字符串或索引键模式。
skip正整数此字段包含要跳过的文档数量。
limit非负整数我们可以设置我们想要返回的最大文档数量。
batchSize非负整数它包含我们想要在第一批中返回的文档数量。
singleBatchboolean它包含在第一批结果后是否关闭游标的详细信息。
maxTimeMS正整数我们可以设置游标处理操作的时间限制。
readConcerndocument它指定读取关注级别。
ReadConcern: { level: <value> }
maxdocument它包含给定索引的上限。
minboolean它包含给定索引的下限。
returnKeyboolean如果为true,则只返回结果文档中的索引键。
showRecordIDboolean它用于返回每个文档的记录标识符。
tailableboolean它为capped collection返回一个可尾随游标。
awaitDataboolean它用于暂时阻塞游标上的getMore 命令。
oplogReplayboolean它是一个用于重播副本集oplog的命令。例如 -
{ find: "data", oplogReplay: true, filter: 
		{ ts: { $gte: new Timestamp(1514764800, 0) } } }
noCursorTimeoutboolean此字段用于防止服务器超时空闲游标。
allowPartialResultsboolean此字段可防止在某些分片不可用时抛出错误。
排序规则document它指定操作的排序规则。
语法
collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

示例

在下面的示例中,命令按名称字段对结果集中的文档进行排序,并将结果集限制为六个文档。

MongoDB findAndModify 命令

它一次修改并返回一个文档。默认情况下,返回的文档不包含更新所做的修改。我们需要使用new 选项来返回修改后的文档。

语法

命令字段

document
字段类型描述
query (查询)document查询字段包含与db.collection.find() 方法中使用的查询选择器相同的查询选择器。
排序document它定义文档的排序顺序。
removeboolean此字段删除查询字段中指定的文档。
update(更新)文档/数组它将更新指定的文档。
newboolean如果设置为true,它将返回修改后的文档而不是原始文档。
document它是要返回的字段的子集。它指定包含值为1的字段。
fields: { <field1>: 1, <field2>: 1, ... }
upsertboolean它与更新字段一起使用。如果为true,它会创建一个新文档并更新与查询匹配的单个文档。此字段的默认值为false。
bypass
文档
验证
boolean它使findAndModify能够在此过程中绕过文档验证。
writeConcerndocument它是一个表示命令写入关注的文档。
maxTimeMS整数它声明操作的时间限制。
FindAndModifyString此字段包含我们必须运行命令的集合。
排序规则collation 字段允许用户指定字符串比较的特定语言规则。
语法
collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}
arrayFilters数组它是过滤器文档数组,用于确定将为更新操作修改哪些数组元素。

示例