【问题标题】:mongoose peek at first document in array猫鼬偷看数组中的第一个文档
【发布时间】:2017-10-09 06:18:25
【问题描述】:

我正在尝试查看保存在 mongoose 中的数组中的第一个元素。假设它看起来像这样:

var batterySchema = mongoose.Schema({ percent: Number, minutes: Number, time: Date, }) var robotSchema = mongoose.Schema({ name: String, battery_life: [batterySchema], }); 我将不断地为使用 unshift 的特定机器人的电池寿命文档添加元素。

现在,如果我想在任何时候获取最新的 battery_life 元素,似乎我可以从该数组中弹出而不保存。但我不知道这是否在某些方面不好。我会更喜欢专用的窥视功能,但找不到。

或者,我可以添加另一个始终具有最新电池状态的字段。这样会更好吗?

【问题讨论】:

    标签: arrays mongodb mongoose


    【解决方案1】:

    您可以使用投影仅投影第一个数组元素。

    假设您的 Mongoose 模型是 Robot,这应该可以:

    Robot.find({}, { "battery_life.0": 1 }, function(err, docs) {
      // Callback code
    })
    

    这将只返回 _id 字段(默认返回)和匹配文档的 battery_life 数组中的第一项。

    如果您只需要数组中的最后一项,那么这应该可以代替:

    Robot.find({}, { "battery_life": { $slice: -1 } }, function(err, docs) {
      // Callback code
    })
    

    【讨论】:

      猜你喜欢
      • 2022-12-23
      • 1970-01-01
      • 2017-06-09
      • 2020-11-18
      • 2021-10-17
      • 1970-01-01
      • 2021-06-30
      • 2020-06-10
      • 2015-06-08
      相关资源
      最近更新 更多