更新文档(快速)-MongoDB
考虑一下MongoDB文档:更新文档(快速)-MongoDB,mongodb,Mongodb,考虑一下MongoDB文档: { "_id" : "RMa.103", "official_name" : "Real Madrid Club de Fùtbol", "country" : "Spain", "started_by" : { "day" : 6,
{
"_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(大学项目)。好的,这就是为什么我在文档末尾有这些信息的原因:)