我一周以来一直在使用MongoDB,我玩得很开心!
到目前为止,我正在构建测试应用程序作为项目和里程碑。请参阅以下结构:
{
"code": "test-project",
"milestones": [
{
"name": "Test Milestone",
"code": "test-milestone"
},
{
"name": "Test Milestone 2",
"code": "test-milestone-2"
}
],
"name": "Test Project"
}
我现在正在制作里程碑的编辑表格。我想编辑让我们说“测试里程碑2”。所以,到目前为止,我已经获得相关项目,然后从相关集合中选择正确的里程碑。但是我想知道是否有办法直接获得里程碑? (在我的情况下)
如果是,那么你能给我一个如何做到的例子吗?
谢谢!
答案 0 :(得分:1)
您可以使用直接查询执行此操作。您只需使用Positional Operator。
假设您要将“测试里程碑2”更新为“测试里程碑二”。您可以运行以下查询:
db.Projects.update( {"milestones.name" : "Test Milestone 2"}, {$set : {"milestones.$.name" : "Test Milestone Two"}} )
$
保存原始数组的位置(update
语句的第一部分)。这使您可以直接跳转到要修改的数组元素。
很高兴听到你在享受MongoDB - 这很有趣。
答案 1 :(得分:0)
将里程碑数组嵌入项目本身。
或者继续做你现在正在做的事情。 (你没有做错。这只是它的本质)