Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用MongoDB修改集合中的文档位置_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 使用MongoDB修改集合中的文档位置

Node.js 使用MongoDB修改集合中的文档位置,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有一套凭证。用户可以添加凭证,然后在前面部分订购 我的目标是根据用户对前面列表的排序方式,对凭单集合中的所有文档重新排序 以下是一个例子: 这是当前的列表 [ { title: "one", id: "1", }, { title: "two", id: "2", }, { title: "three",

我有一套
凭证
。用户可以添加
凭证
,然后在前面部分订购

我的目标是根据用户对前面列表的排序方式,对
凭单
集合中的所有文档重新排序

以下是一个例子: 这是当前的列表

[
   {
     title: "one",
     id: "1",
   },
     {
     title: "two",
     id: "2",
   },
   {
     title: "three",
     id: "3",
   },
   {
     title: "four",
     id: "4",
   }
]
用户可以按如下方式重新排列列表:

[
    {
      title: "one",
      id: "1",
    },
    {
      title: "three",
      id: "3",
    },
      {
      title: "two",
      id: "2",
    },
    {
      title: "four",
      id: "4",
    }
]
我的主要目标是管理对数据库中的所有文档进行重新排序,作为第二个数组示例,其中每个对象都是一个文档

我可以在
凭证
模式中设置
索引
字段,在第一次查询中,设置目标元素的位置,然后在第二次查询中,检查文档验证此条件的情况:
oldTargetElementIndex>otherElementIndex>currentTargetElementIndex
。如果文档验证了此条件,那么我将按
1
增加
索引

这可能是一个解决方案,但我真的不知道如何用mongoDB实现它

顺便说一下,我用的是猫鼬

我希望这是清楚的

有什么想法吗


非常感谢你的帮助!:)

tbh,我不能很好地理解它。您并没有试图修改数据库,而是修改查询输出的顺序,对吗?@Minsky是的,对不起,不太清楚。我试图修改数据库中集合的文档顺序:当用户修改列表(前面)的顺序并提交它时,我希望根据用户更新重新组织文档。你明白了吗?我明白了。那么
db.coll.aggregate([{$addFields:{“fieldname”:userInput}}])
呢。当然,您需要以文档为目标,否则将覆盖整个集合。@Minsky我不确定是否理解解决方案。它没有根据用户输入对数据库进行排序?@Minsky用户可以在UI中更改位置项。因此,(项目的)位置(即项目)应该在集合中更新