更新文档(快速)-MongoDB

更新文档(快速)-MongoDB,mongodb,Mongodb,考虑一下MongoDB文档: { "_id" : "RMa.103", "official_name" : "Real Madrid Club de Fùtbol", "country" : "Spain", "started_by" : { "day" : 6,

考虑一下MongoDB文档:

      {
                "_id" : "RMa.103",
                "official_name" : "Real Madrid Club de Fùtbol",
                "country" : "Spain",
                "started_by" : {
                        "day" : 6,
                        "month" : 3,
                        "year" : 1902
                },
                "stadium" : {
                        "name" : "Santiago Bernabeu",
                        "capacity" : 85454
                },
                "palmarès" : {
                        "La Liga" : 32,
                        "Copa del Rey" : 19,
                        "Supercopa de Espana" : 9,
                        "UEFA Champions League" : 10,
                        "UEFA Europa League" : 2,
                        "UEFA Super Cup" : 2,
                        "FIFA Club World cup" : 4
                },
                "uniform" : "white"
}
[1] db.team.update({_id:"RMa.103"}, {$set:{common_name:"Real Madrid"}}) 
我忘了插入团队的一个重要信息:通用名称。 因此,我更新了文件:

      {
                "_id" : "RMa.103",
                "official_name" : "Real Madrid Club de Fùtbol",
                "country" : "Spain",
                "started_by" : {
                        "day" : 6,
                        "month" : 3,
                        "year" : 1902
                },
                "stadium" : {
                        "name" : "Santiago Bernabeu",
                        "capacity" : 85454
                },
                "palmarès" : {
                        "La Liga" : 32,
                        "Copa del Rey" : 19,
                        "Supercopa de Espana" : 9,
                        "UEFA Champions League" : 10,
                        "UEFA Europa League" : 2,
                        "UEFA Super Cup" : 2,
                        "FIFA Club World cup" : 4
                },
                "uniform" : "white"
}
[1] db.team.update({_id:"RMa.103"}, {$set:{common_name:"Real Madrid"}}) 
这样,新信息会添加到文档末尾,而我希望它位于正式名称之后:

{
                    "_id" : "RMa.103",
                    "official_name" : "Real Madrid Club de Fùtbol",
                    "common_name" : "Real Madrid"
                                 .......
                                 .......
                                 .......
}
现在,我知道使用以下方法更新文档,我在正确的位置拥有团队的通用名称:

db.team.update(
     {_id:"RMa.103"}, {$set:{ "_id" : "RMa.103", 
     "official_name": "Real Madrid Club de Fùtbol", 
     common_name:"Real Madrid", "country" : "Spain", 
     "started_by" : { "day" : 6, "month" : 3, "year" : 1902 }, 
     "stadium" : { "name" : "Santiago Bernabeu", "capacity" : 85454 },   
     "palmarès" : { "La Liga" : 32, "Copa del Rey" : 19, "Supercopa de Espana" : 9, 
     "UEFA Champions League" : 10, "UEFA Europa League" : 2, "UEFA Super Cup" : 2, 
     "FIFA Club World cup" : 4 }, "uniform" : "white", "common_name" : "Real Madrid" }})

我要更新很多文件,这种操作非常困难,而且从shell的提示来看很枯燥。是否有更快的方法来执行此更新?例如,是否可以更改[1]的更新方法

不,不是真的。你不应该有一个特定的顺序。当从应用程序查询时,它不会关心值的顺序。例如:

如果您想知道为什么他们没有办法为人眼订购,那么您必须记住,数据库的设计并不是为了与用户直接交互。它们应该与使用它们并以人性化方式显示数据的应用程序结合使用


我希望我能充分回答你的问题,如果回答不充分,请在下面发表评论,我会详细解释。

不,不是真的。你不应该有一个特定的顺序。当从应用程序查询时,它不会关心值的顺序。例如:

如果您想知道为什么他们没有办法为人眼订购,那么您必须记住,数据库的设计并不是为了与用户直接交互。它们应该与使用它们并以人性化方式显示数据的应用程序结合使用

我希望我能充分回答您的问题,如果回答不充分,请在下面进行评论,我将作更多解释。

来自:

对象是一组无序的名称/值对

因此,绝对没有办法在JSON中强制执行任何类型的键顺序,因此MongoDB文档也是如此

这是没有用的:任何MongoDB驱动程序都会使用给定的键为您提供相应的值。键顺序没有意义。

来自:

对象是一组无序的名称/值对

因此,绝对没有办法在JSON中强制执行任何类型的键顺序,因此MongoDB文档也是如此


这是没有用的:任何MongoDB驱动程序都会使用给定的键为您提供相应的值。键顺序是没有意义的。

如果它在文档末尾,有什么问题吗?没有,但看起来不好看。细节很重要。我恐怕不能这么做。这是个坏消息。好的,谢谢:)如果它在文档的末尾,有什么问题吗?没有,但看起来不好看。细节很重要。我恐怕不能这么做。这是个坏消息。好的,谢谢:)回答得很好。你说得对:数据库与应用程序结合在一起。不幸的是,我不得不谈论我的Mongo数据库使用Shell(大学项目)。好的,这就是为什么我在文件末尾有这些信息的原因:)回答得很好。你说得对:数据库与应用程序结合在一起。不幸的是,我不得不谈论我的Mongo数据库使用Shell(大学项目)。好的,这就是为什么我在文档末尾有这些信息的原因:)