mongodb - 为什么 Mongodb 创建一个带有 ObjectsId 的数组而不是一个简单的对象数组?
问题描述
我有一个包含对象数组的文档。当我创建一个新文档时,对象数组是使用 ObjectsId 创建的。
这正常吗?我需要指定一些东西来避免这种情况吗?
猫鼬选项:
mongoose.connect(config.mongoUrl, {
useNewUrlParser: true,
useCreateIndex: false,
useUnifiedTopology: true,
useFindAndModify: false,
架构:
...
tags: [{
name: { type: String },
experience: { type: Number },
}],
graphql 类型定义:
type _tag {
name: String
experience: Int
}
...
type Freelance implements IObjetoWerk {
...
tags: [_tag]
...
}
graphql 解析器:
`...
const newObjetoWerk = new werkModels.ObjetoWerk(input);
await newObjetoWerk.save();
console.log(newObjetoWerk);
return newObjetoWerk;
...`
graphiQL 查询变量:
...
"tags": [
{
"name": "Clown",
"experience": 2
}
],
结果:
解决方案
据我了解,您想删除添加在子文档中的 ObjectId,因此您应该在架构定义中指定它
...
tags: [{
_id: false,
name: { type: String },
experience: { type: Number },
}],
...
还有什么让我知道。
推荐阅读
- java - How to update images with imageview from code
- r - 将 y 轴划分为分数 <25 的部分在 ggplot 中占多数
- javascript - create variable from string given in array
- sql - Write a query to get for each person, for each date - what is his last out_time?
- javascript - new Map() 状态获取特定键
- wordpress - Yet another WordPress Ajax 400 Bad Request problem
- javascript - Debug support for multithread node.js javascript in vs code
- php - Laravel 8 fresh installation not working: Class 'PhpOption\Option' not found
- reactjs - Dynamic Nested Routing
- javascript - 如何延迟 For 循环以循环通过替换文本的数组