Javascript 如何向Node.js中的嵌套mongodb集合添加和删除数据?
我想在以下mongodb集合中添加和删除开发人员。可以有许多项目,每个项目可以有许多用户故事,每个用户故事可以有多个开发人员参与其中 问题: 我可以使用哪个mongodb查询向stories集合添加新的开发人员,以及我可以使用哪个mongodb查询从stories集合中删除开发人员 项目的JSON:Javascript 如何向Node.js中的嵌套mongodb集合添加和删除数据?,javascript,mongodb,node.js,Javascript,Mongodb,Node.js,我想在以下mongodb集合中添加和删除开发人员。可以有许多项目,每个项目可以有许多用户故事,每个用户故事可以有多个开发人员参与其中 问题: 我可以使用哪个mongodb查询向stories集合添加新的开发人员,以及我可以使用哪个mongodb查询从stories集合中删除开发人员 项目的JSON: 你的设计不一致。有些集合是数组,有些是哈希 我倾向于更多地使用散列,但我不会对项目使用普通的“数值”索引。例如: "stories": { "0": { "_id": "U8
你的设计不一致。有些集合是数组,有些是哈希 我倾向于更多地使用散列,但我不会对项目使用普通的“数值”索引。例如:
"stories": {
"0": {
"_id": "U89Tq7X8BF2qaBfFzfE99lkb",
"deadline": "10\/10\/2010",
如果它写的是
"stories": {
"U89Tq7X8BF2qaBfFzfE99lkb": {
"deadline": "10\/10\/2010",
开发者也是如此。我想他们有身份证吧?应该如此
"developers": {
dev1_id : {username : username1},
dev2_id : {username : username2}
}
现在,您可以使用纯点集管理这些对象
添加新开发人员
吸引开发者
你的设计不一致。有些集合是数组,有些是哈希 我倾向于更多地使用散列,但我不会对项目使用普通的“数值”索引。例如:
"stories": {
"0": {
"_id": "U89Tq7X8BF2qaBfFzfE99lkb",
"deadline": "10\/10\/2010",
如果它写的是
"stories": {
"U89Tq7X8BF2qaBfFzfE99lkb": {
"deadline": "10\/10\/2010",
开发者也是如此。我想他们有身份证吧?应该如此
"developers": {
dev1_id : {username : username1},
dev2_id : {username : username2}
}
现在,您可以使用纯点集管理这些对象
添加新开发人员
吸引开发者
好的,这是一个解决办法,但它似乎工作得很好。我在服务器上做一些工作,而不是数据库
projects.findOne({_id : projectId}, function(err, project)
{
for(var i = 0; i < project.stories.length; i++)
{
if(project.stories[i]._id == storyId)
{
var developers = project.stories[i].developers;
var size = developers.length;
var developers[size] = {username : username};
projects.update( {"stories._id" : storyId},
{$set:
{
"stories.$.developers" : developers
}
}, false, true);
}
}
}
好的,这是一个解决办法,但它似乎工作得很好。我在服务器上做一些工作,而不是数据库
projects.findOne({_id : projectId}, function(err, project)
{
for(var i = 0; i < project.stories.length; i++)
{
if(project.stories[i]._id == storyId)
{
var developers = project.stories[i].developers;
var size = developers.length;
var developers[size] = {username : username};
projects.update( {"stories._id" : storyId},
{$set:
{
"stories.$.developers" : developers
}
}, false, true);
}
}
}
出于某种原因,Rockmongo显示带有方括号的空散列。在JavaScript中,它们是使用花括号启动的。我将修改数据库并尝试一下,谢谢。这是因为它是用PHP编写的。PHP不能区分空数组和空散列,它们是相同的东西,AFAIKI已经看过了,不可能改变数据库结构,因为这意味着要改变大量的查询和函数。在不改变数据库结构的情况下,是否有一个可行的答案来回答我的上述问题?请先修改您的问题,并按照数据库中的方式制作数组和哈希。然后我们来看。我已经更新了问题中的代码,在过去的几个小时里我修改了MongoDB查询,但找不到任何处理双嵌套集合的方法。出于某种原因,Rockmongo显示了带方括号的空哈希。在JavaScript中,它们是使用花括号启动的。我将修改数据库并尝试一下,谢谢。这是因为它是用PHP编写的。PHP不能区分空数组和空散列,它们是相同的东西,AFAIKI已经看过了,不可能改变数据库结构,因为这意味着要改变大量的查询和函数。在不改变数据库结构的情况下,是否有一个可行的答案来回答我的上述问题?请先修改您的问题,并按照数据库中的方式制作数组和哈希。然后我们来看。我更新了问题中的代码,在过去的几个小时里我修改了MongoDB查询,但找不到任何处理双嵌套集合的方法。