Docs 菜单
Docs 主页
/ / /
Mongoid
/ /

保留查询中的数据

在本指南中,您可以学习;了解如何在 Mongoid 中持久化查询数据。 Mongoid 在有限的容量内支持不符合条件的持久性操作,从而允许您快速执行多文档插入、更新和删除操作。

要学习;了解有关创建过滤条件的更多信息,请参阅指定文档查询指南。

要学习;了解有关执行增删改查操作的更多信息,请参阅执行数据操作指南。

本节介绍可链接到查询以在MongoDB集合中创建、更新和删除数据的方法。

您可以使用以下方法根据查询条件创建新文档:

  • create:将模型实例保存到MongoDB

    • 示例: Band.where(name: 'Daft Punk').create

  • create!:将模型实例保存到MongoDB ,或在发生验证错误时引发异常

    • 示例: Band.where(name: 'Daft Punk').create!

  • build:创建未保存的模型实例

    • 示例: Band.where(name: 'Daft Punk').build

  • new:创建未保存的模型实例

    • 示例: Band.where(name: 'Daft Punk').new

您可以根据查询条件使用以下方法更新文档:

  • update:更新第一个匹配文档的属性

    • 示例: Band.where(name: 'Sundown').update(label: 'ABC Records')

  • update_all:更新所有匹配文档的属性

    • 示例: Band.where(country: 'Canada').update_all(label: 'ABC Records')

  • add_to_set:将值添加到所有匹配文档中的指定大量

    • 示例: Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')

  • bit:对字段执行按位更新

    • 示例: Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })

  • inc:递增字段的值

    • 示例: Band.where(name: 'Sun Down').inc(likes: 14)

  • pop:删除大量字段的第一个或最后一个元素

    • 示例: Band.where(name: 'Sun Down').pop(members: -1)

  • pull:从大量字段中删除与指定条件匹配的一个或多个值的所有实例

    • 示例: Band.where(name: 'Sun Down').pull(members: 'Jonah Larsen')

  • pull_all:从大量字段中删除指定值的所有实例

    • 示例: Band.where(name: 'Sun Down').pull_all(:members, [ 'Jonah Larsen', 'Dan Jones' ])

  • push:将指定值追加到大量字段

    • 示例: Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')

  • push_all:在大量字段中使用 $each操作符追加指定值

    • 示例: Band.where(name: 'Sun Down').push_all(members: [ 'Jonah Larsen', 'Dan Jones' ])

  • rename:重命名所有匹配文档中的字段

    • 示例: Band.where(name: 'Sun Down').rename(name: :title)

  • set:为所有匹配文档中的指定字段设置新值

    • 示例: Band.where(name: 'Sun Down').set(likes: 10000)

  • unset:删除所有匹配文档中的特定字段

    • 示例: Band.where(name: 'Sun Down').unset(:likes)

您可以根据查询条件,使用以下方法删除文档:

  • delete:删除所有匹配的文档。

    • 示例: Band.where(label: 'ABC Records').delete

  • destroy:在运行回调时删除所有匹配的文档。 此方法将所有文档加载到内存中。

    • 示例: Band.where(label: 'ABC Records').destroy

要学习;了解如何自定义持久性目标,请参阅持久性配置指南。

后退

范围界定

在此页面上