我有模特:
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});
});
});
会给我正确的文件。有什么想法吗?
答案 0 :(得分:0)
好,
测试的问题是产品模拟对象是在数据库插入汽车之前创建的。因此,当产品相对于汽车创建和存储时,_id是不同的。如何查询它没有错。