Graphql возвращает нулевой идентификатор для запроса агрегации mongoose, но работает нормально для других запросов mongoose.
Вот моя схема 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,
}]
Проблема здесь такова:
- идентификатор равен нулю
- ответы из console.log и graphql являются разными объектами