mongoose4.5中文教程
  • Introduction
  • Mongoose
  • guide
    • 模式(schemas)
      • 模式类型(types)
      • 自定义类型(custom)
    • 模型(models)
    • 文档(documents)
      • 子文档(sub docs)
      • 默认值(defaults)
    • 查询(queries)
    • 验证(validation)
    • 中间件(middleware)
    • 联表(population)
    • 连接(connections)
    • 插件(plugins)
    • 承诺(promises)
    • 鉴频器(discriminators)
    • 贡献
    • ES2015 整合
    • 浏览器中的schemas
    • 自定义schema类型
    • MongoDB版本兼容性
    • 3.6 发布说明
    • 3.8 发布说明
    • 4.0 发布说明
  • API 文档
Powered by GitBook
On this page
  • Documents
  • 检索
  • 更新
  • 验证
  • 下一步

Was this helpful?

  1. guide

文档(documents)

Previous模型(models)Next子文档(sub docs)

Last updated 6 years ago

Was this helpful?

原文: 翻译:小虾米(QQ:509129)

Documents

Mongoose代表了文档存储在MongoDB的一对一映射。每个文档都是它的的一个实例。

检索

有许多方法从MongoDB文档检索。我们不会涵盖在在这一部分中。查看查询详细信息的章节。

更新

有一些方法来更新文档。我们先看看使用findById的传统方法:

Tank.findById(id, function (err, tank) {
  if (err) return handleError(err);

  tank.size = 'large';
  tank.save(function (err) {
    if (err) return handleError(err);
    res.send(tank);
  });
});

这种方法包括首先检索文档从Mongo,然后发出更新命令(通过触发调用保存)。然而,如果我们不需要的文档在我们的应用程序中返回,只需要更新一个属性直接在数据库、Model#update对我们是正确的:

Tank.update({ _id: id }, { $set: { size: 'large' }}, callback);
Tank.findByIdAndUpdate(id, { $set: { size: 'large' }}, function (err, tank) {
  if (err) return handleError(err);
  res.send(tank);
});

验证

下一步

如果我们的应用程序需要文档返回,则需要另一个方法,往往,选项:

findAndUpdate/Remove 静态方法都在最多一个文档中进行更改,并返回它只有一个调用数据库。有几种不同的findandmodify主题。阅读的更多细节。注意findAndUpdate/Remove不执行任何钩子或验证在在数据库中进行更改 之前。如果你需要钩子和验证,首先查询文档,然后保存它。

译者注:,,

在保存文档之前,文档进行了验证。详情阅读或章节。

既然我们已经掌握了文档,让我们看看。

Documents
文档
模型
‘querying’
更好
API文档
findByIdAndRemove
findOneAndUpdate
findAndModify
API文档
validation
子文档