Javascript MongoDB元素序

Javascript MongoDB元素序,javascript,node.js,mongodb,nosql,Javascript,Node.js,Mongodb,Nosql,我的应用程序有一个游戏列表。每个游戏都有一个位置(向用户显示的顺序:1、2、3…) 我使用MongoDB保存所有数据。好的,现在我有了位置4的游戏。我想把它换成位置1。那么我需要做什么呢 我需要将这个游戏在MongoDB中的字段位置从4更新为1,并在位置1之后对这个集合中的所有文档进行增量 但我认为这不是个好主意!也许你有办法更好地实施它?谢谢 mongo表的示例: _id | name | description | position | _______

我的应用程序有一个游戏列表。每个游戏都有一个位置(向用户显示的顺序:1、2、3…)

我使用MongoDB保存所有数据。好的,现在我有了位置4的游戏。我想把它换成位置1。那么我需要做什么呢

我需要将这个游戏在MongoDB中的字段位置从4更新为1,并在位置1之后对这个集合中的所有文档进行增量

但我认为这不是个好主意!也许你有办法更好地实施它?谢谢

mongo表的示例:

_id             | name    | description      | position |
________________________________________________________
ObjectId("...") | bubble  | some description | 1
ObjectId("...") | bubbleA | some description | 2
ObjectId("...") | bubbleB | some description | 3
ObjectId("...") | bubbleC | some description | 4
ObjectId("...") | bubbleD | some description | 5
ObjectId("...") | bubbleE | some description | 6
ObjectId("...") | bubbleF | some description | 7
所以现在在我的网站上我按顺序展示游戏:泡泡->泡泡球->泡泡球->泡泡球->泡泡球。。。 现在我想在我的网站游戏中按顺序显示:泡泡糖->泡泡糖->泡泡糖->泡泡糖。。。
为此,我需要将表中“bubbleC”的“position”字段更新为“1”,并在名为“bubble”的文档之后增加所有其他文档的“positions”。但这是个坏主意。那么,如何做得更好呢?

如果您的文档数量相对较少,并且位置变化不大,那么您的方法也不会那么糟糕

作为替代方案,您可以将位置元数据存储在单独的数组中。职位更新只涉及一个文档。基本Python示例:

def移动(位置、旧索引、新索引):
元素=positions.pop(旧索引)
位置.插入(新索引,元素)
返回位置
#从MongoDB(或任何地方)获取数组
职位=[
{u id':'ObjectId(“…”,'name':“bubble”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleA”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleB”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleC”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleD”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleE”,'description':“some description”},
{u id':'ObjectId(“…”,'name':“bubbleF”,'description':“some description”}
]
旧指数=3
新索引=0
移动(位置、旧索引、新索引)
#新职位:
#

#[{u id':'ObjectId(“…”,'description':'some description','name':'bubbleC'},人们无法真正建议如何“移动您的数据”,除非您显示真实数据以及您正在尝试做什么。请编辑您的问题。更新了我的帖子,希望现在更清楚)