【发布时间】:2020-11-13 06:17:08
【问题描述】:
我有一个充满包含信息的对象的数据库,以及其他对象数组。我想将内部数组更改为仅将每个索引作为 ObjectId 类型以及它们各自的 ObjectId 的数组
我稍后在程序中使用 mongoose 填充函数来检索此信息。所以引用只需要 ObjectId。
job {
_id: 1,
name: "name",
parts: [
{ _id: ObjectId("5c790ce7d3dc8d00ccc2688c"), name: "name"},
{ _id: ObjectId("5c790ce7d3dc8d00ccc2688b"), name: "name"},
{ _id: ObjectId("5c790ce7d3dc8d00ccc2688a"), name: "name"},
]
}
想要的结果
job {
_id: 1,
name: "name",
parts: [
ObjectId("5c790ce7d3dc8d00ccc2688c"),
ObjectId("5c790ce7d3dc8d00ccc2688b"),
ObjectId("5c790ce7d3dc8d00ccc2688a")
]
}
我从命令行尝试了一些 mongoDB 查询,但它们都没有给出我需要的结果。这个没有错误,但似乎没有任何改变。
db.jobs.update(
{},
{
$set: {"parts.$[element]": "element._id"}
},
{
multi: true,
arrayFilters: [{ "element": {} }]
}
)
我不确定这是否可能仅使用 mongo shell。
【问题讨论】:
标签: json mongodb mongoose nosql