【发布时间】:2020-01-29 16:40:16
【问题描述】:
Graphql 为 mongoose 聚合查询返回 null id,但其他 mongoose 查询工作正常。
这是我的猫鼬模式:
const { Schema } = mongoose;
const ObjectId = Schema.Types.ObjectId;
const productSchema = new Schema({
_id: ObjectId,
price: Number
})
const Product = mongoose.model('Product', productSchema, 'Product')
这是我的 Graphql 架构:
type Product {
id: ID
price: String
}
Graphql 普通查询:
context.Product.findOne()
console.log 的结果:
[ {
price: 10,
_id: 5d7f8efebff791dcd3bb1b69
}]
graphql 的结果:
"getSearch": [
{
"id": "5d7f8efebff791dcd3bb1b69",
"price": 10,
}]
这里一切都很好。 现在问题在于聚合查询:
GraphQL 查询:
context.Product.aggregate(
[
{ $sample: { size: 1 } }
]
)
console.log 的结果:
[ { _id: 5d7f8f23bff791dcd3bb1da3,
price: 5
}]
GraphQL 的结果:
"test": [
{
"id": null",
"price": 7,
}]
这里的问题是:
- id 为空
- console.log 和 graphql 的响应是不同的对象
【问题讨论】:
标签: mongodb mongoose graphql aggregation-framework apollo-server