gpt4 book ai didi

javascript - 如何在 Node.js 中添加和删除嵌套的 mongodb 集合?

转载 作者:行者123 更新时间:2023-11-30 06:43:53 24 4
gpt4 key购买 nike

我想在以下 mongodb 集合中添加和删除“开发人员”。可以有很多项目,每个项目可以有很多用户故事,每个用户故事可以有多个开发人员参与。

问题:

我可以使用什么 mongodb 查询将新开发人员添加到“stories”集合,以及可以使用什么 mongodb 查询从“stories”集合中删除开发人员?

项目的 JSON:

{
"_id": ObjectId("4ef0a2bac8c056bc26000002"),
"chat": {
"0": {
"body": "Test",
"sender": "brownj2",
"sent": 1324404459137
}
},
"clients": {
"0": {
"username": "b"
}
},
"owner": "brownj2",
"stories": {
"0": {
"_id": "U89Tq7X8BF2qaBfFzfE99lkb",
"deadline": "10\/10\/2010",
"description": "Example user story",
"developers": {
/* Developers go here */
},
"lane": "2",
"roi": "0.38",
"sp": "8",
"title": "Test #2",
"type": "story",
"value": "3"
},
"1": {
"_id": "EdbzrnoZTh8LTFDNrUSBkVrd",
"deadline": "10\/10\/2010",
"description": ".....",
"developers": {
/* Developers go here */
},
"lane": "0",
"roi": "1.00",
"sp": "4",
"title": "Test #1",
"type": "story",
"value": "4"
}
},
"team": {
"0": {
"username": "a"
}
},
"title": "Example Project"
}

最佳答案

您的设计不一致。您的一些集合是数组,另一些是散列。

我倾向于更多地使用散列,但我不会为项目使用普通的“数字”索引。例如:

"stories": {
"0": {
"_id": "U89Tq7X8BF2qaBfFzfE99lkb",
"deadline": "10\/10\/2010",

如果写成这样(对我来说)会更有意义

"stories": {
"U89Tq7X8BF2qaBfFzfE99lkb": {
"deadline": "10\/10\/2010",

开发人员也是如此。我想他们有身份证,对吧?所以应该是

"developers": {
dev1_id : {username : username1},
dev2_id : {username : username2}
}

现在您可以使用简单的点状 set 来管理这些对象

添加新开发者

db.projects.update({_id: ObjectId("4ef0a2bac8c056bc26000002")},
{$set: {"stories.U89Tq7X8BF2qaBfFzfE99lkb.dev3_id" : username3})

拉一个开发者

db.projects.update({_id: ObjectId("4ef0a2bac8c056bc26000002")},
{$unset: {"stories.U89Tq7X8BF2qaBfFzfE99lkb.dev1_id" : 1})

关于javascript - 如何在 Node.js 中添加和删除嵌套的 mongodb 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com