Mongoose查询返回空数组

时间:2016-03-10 22:51:23

标签: node.js express mongoose

下面是我的快速端点,它返回一个空数组

router.get('/myUnits/:landlord_id', wagner.invoke((Apartment) => {
    return (req, res) => {
      Apartment.find({ postedBy: req.params.landlord_id }, (err, apt) => {
        if (err) {
          return res.status(status.INTERNAL_SERVER_ERROR)
                    .json({ error: err.toString() })
        }
        if (!apt) {
          return res.status(status.NOT_FOUND)
                    .json({ error: 'Not found' })
        }
        return res.json(apt)
      })
    }
  }))

我更改了Apartment.find({ price: 200 }),并使用price: 200查询所有数据,但查询postedBy根本不起作用。

当我去我的mongo shell并进行查询时

db.apartments.find({ postedBy: 'the id of the account here' })

返回适当的数据。

https://gyazo.com/77afa64f9afb75f47667d0f47757c3e4

1 个答案:

答案 0 :(得分:0)

我明白了。它一直在我的架构中。

let apartmentSchema = {
  name: { type: String, required: true },
  price: { type: Number, required: true },
  promotion: { type: String, required: true },
  postedOn: { type: Date, required: true },
  postedBy: {
    type: mongoose.Schema.Types.ObjectId, // this was the culprit
    required: true
  }
}

我刚刚将类型更改为String。我使用了之前api中的ObjectId,我很久以前就已经更新了。谢谢你的耐心!