Node Mongo Query Nest Object / Model _id

时间:2016-10-07 22:08:27

标签: node.js mongodb

我有模特:

var carSchema = new mongoose.Schema({
  year: {
      type: [Number],
      required: true
  },
 brand: {
    type: String,
    required: true
 },
model: {
    type: String,
    required: true
}

});

var productSchema = new mongoose.Schema ({
  name: { type: String, required: true },
  // Pictures must start with "http://"
  pictures: [{ type: String, match: /^http:\/\//i }],
  price: {
    amount: {
      type: Number,
      required: true
    },
    // Only 2 supported currencies for now
    currency: {
      type: String,
      enum: ['CAD','USD'],
      required: true,

    }
  },
  category: Category.schema,
  cars: [Car.schema],
  internal: {
    approximatePriceCAD: Number
  }
});

我正在尝试查询嵌套的汽车_id,但它没有返回任何文件。查询其他汽车参数,如型号或品牌,将给我结果,但不是_id。

例如,

app.get('/product/vehicle/:id', function(req, res) {
    Product.find({'cars._id' : req.params.id}, function(error, docs) {
      return res.json({products: docs});
    });
});

将返回空文档。

app.get('/product/vehicle/:brand', function(req, res) {
    Product.find({'cars.brand' : req.params.brand}, function(error, docs) {
      return res.json({products: docs});
    });
});

会给我正确的文件。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好,

测试的问题是产品模拟对象是在数据库插入汽车之前创建的。因此,当产品相对于汽车创建和存储时,_id是不同的。如何查询它没有错。