【发布时间】:2021-05-19 17:23:09
【问题描述】:
我正在尝试完成一些非常简单的事情,但仍然失败了。
我想做的是,当我在服务器上收到get 请求时,我想返回所有文档,但只返回填充的特定字段。
我的架构如下
var clientSchema = new Schema({
name:{
type: String,
required: true
},
phone:{
type: String,
required: true
},
email:{
type: String,
required: true
},
address: {
type: String,
required: false
}
});
var orderDetailsSchema = new Schema({
//isn't added to frontend
confirmed:{
type: Boolean,
required: true,
default: false
},
service:{
type: String,
required: true
},
delivery:{
type: String,
required: false
},
payment:{
type: String,
required: false
},
status:{
type: String,
required: true,
default: "new order"
},
});
var orderSchema = new Schema({
reference:{
type: String,
required: true
},
orderdetails: orderDetailsSchema,
client: clientSchema,
wheelspec: [wheelSchema],
invoice:{
type: Schema.Types.ObjectId,
ref: 'Invoice'
}
});
我想要的是只返回 client.phone 和 client.email 加上 orderdetails.status 但如果可能仍保留 reference 字段
我尝试过使用lean() 和populate(),但没有成功。我缺少什么非常简单的东西吗?或者我想要实现的不是那么容易?
谢谢!
【问题讨论】:
-
您的 get 调用是什么样的?你可以使用 mongodb 投影
-
需要查看您当前的查询
标签: javascript node.js mongodb mongoose mongoose-schema