即将发布!MongoDB 2.6发布说明翻译:全新推出的写操作命令

这是为MongoDB Advent Calendar准备的填空帖子。

我已经翻译了即将发布的MongoDB 2.6版本的部分发布说明。这次主要针对写入处理进行了重大功能增加。
注:在MongoDB中,2.5.x为开发版本,2.6.x为发布版本。

他的其他翻譯

    • まとめ!MongoDB 2.6のリリースノート翻訳と所感

 

    • リリース間近!MongoDB 2.6のリリースノート翻訳: 既存機能の変更点

 

    • リリース間近!MongoDB 2.6のリリースノート翻訳: Aggregation Pipelineの変更点

 

    • リリース間近!MongoDB 2.6のリリースノート翻訳: 新機能と改善点

 

    リリース間近!MongoDB 2.6のリリースノート翻訳: エンタープライズ向け機能

首先: 全新推出的写作指令

在MongoDB 2.6中,新增了一种使用db.runCommand进行写入操作(insert、update、delete)的新格式。

举例来说,使用runCommand进行插入操作的命令如下所示。

db.runCommand(
   {
      insert: “people”,
      documents: [ { name: "Sam", state: "active" } ],
      ordered: false,
      writeConcern: { w: 1 }
   }
)

修改内容

    • オプションが指定できるようになりました。例えば、これまではドライバ経由でしか指定できなかったwriteConcern(書き込み保証レベル)が指定できます。

 

    実行後、特に失敗時に詳細なステータスがリターンされるようになりました。

顺便说一下,关于旧版本的 db.{collection}.insert() 函数,它并没有被删除,仍然可以使用。不过,其内部实现方式已经有了很大的变化。

在mongo shell中,如果将db.{collection}.insert和()去掉后执行,您可以确认函数的定义,但在2.4.x和2.5.x版本中有很大的变化。

我们现在开始翻译发布说明。

原始版本的发布说明请查看此链接:
http://docs.mongodb.org/master/release-notes/2.6/


目录

更改書寫操作的點

    • 新しい書き込み系コマンド

 

    • 新しいUpdateオペレーター

$mul Updateオペレーター

xor演算を使用した$bitオペレーター

$min Updateオペレーター

$max Updateオペレーター

$currentDate Updateオペレーター

$push UpdateオペレーターのためのModifiersのエンハンス

$each Modifierの変更

$sort Modifierのエンハンス

$slice Modifierのエンハンス

$position Modifire

新的写入命令

支援了新的insert、update、delete指令。這些指令可以明確指定寫入保證等級(write concern),並且在批量插入多個文件時,即使其中一個失敗,也可以指定繼續執行。

详细信息:

    • insert

 

    • update

 

    delete

如果连接到版本2.5.4或更高的MongoDB实例,则在mongo shell中默认使用新的写入操作。
注:使用db.{collection}.insert()或runCommand时也会使用新的写入操作。

如果连接到之前版本的MongoDB实例,将使用传统的写入操作。

请参考MongoDB, Inc.开发的官方MongoDB驱动程序,适用于各种编程语言,该驱动程序在2.6版本发布之前就已支持新的写入命令。有关详细信息,请查阅您所使用的驱动程序的发布说明。

新的更新操作员

与书写系统一样,更新系统运营商也已经被添加/更改。

$mul更新操作员

可以使用$mul操作符将字段值与指定的值相乘。

详细信息: $ mul

使用$bit运算符进行xor演算。

$bit操作符使用逻辑异或运算来支持按位更新。

详细信息:$bit

最小化更新操作符

如果指定的值比当前的字段值小,则$ min运算符将更新字段值为指定的值。

详细信息:$min

$max 更新操作符

如果指定的值大于当前字段值时,$max操作符将更新字段值为指定的值。

最大

当前日期更新操作员

$currentDate操作符用于设置当前时间。可以选择Date类型或timestamp类型。

详细信息:$currentDate。

推送 更新操作符的增强子

为了提高功能性和易用性,$push操作符增强了对$sort、$slice和$each修饰符的支持。

此外,$push操作符还添加了$position修饰符。
注:关于$position的解释将在后面进行说明。

详细信息:$push

每个修饰语的更改

在与$sort、$slice和$position modifier结合使用时,$each不再必须是$push的第一个modifier。

详细信息:每个 $each

$sort Modifier的增强

通过使用$sort,现在可以对常规的数组进行排序了。
注:在以前的版本中,只能对具有文档元素的数组进行排序。

這個修改意味著可以使用非文件陣列元素進行排序。而如果陣列的元素是文件,不僅可以根據文件字段進行排序,還可以根據整個文件進行排序。

註解: 換句話說,這是一個普通的陣列。

array[12, 43, 6, 89, 77, 90]

现在可以进行排序了。

另外,还有一个由文件组成的数组

array[
  { id: 3, score: 8 },
  { id: 4, score: 7 },
  { id: 5, score: 6 }
]

现在可以根据指定的字段进行排序,也可以不指定字段进行排序。
如果没有指定字段,则会按照第1个元素(在上述情况中为id)进行排序。

sort 不再需要 slice。

詳細資訊:$排序

增强$slice修改器

$slice modifier 现在可以指定整数值。 通过指定整数值,可以从数组的开头开始计数,并切片数组。
注释:例如,与$sort一起使用时,可以执行“对数组进行排序并切片出前3个”的操作。

详细信息:$截取

职位标志

在使用$push操作符时,可以明确指定要插入值的位置的位置修饰符。

详细信息:$position

广告
将在 10 秒后关闭
bannerAds