【发布时间】:2016-06-19 01:37:38
【问题描述】:
我需要能够增加和减少 MongoDB 对象中数组元素的位置。
我查看了MongoDB API 中的<update> API,但找不到任何可以让我这样做的东西。
我正在尝试使用findOneAndUpdate 到Mongoose,并且我知道我要向上或向下移动的元素的索引。
base64编码图像的数组项示例:
{
images: [
"img1",
"img2",
"img3"
]
}
我想向上或向下移动,例如“img2”(但“image”应该无法向上推,因为无处可去)。
如果我想将“img2”向上推,那么结果将是:
{
images: [
"img2",
"img1",
"img3"
]
}
我是否通过更改索引、交换或上推/下推来实现这一点并不重要。
【问题讨论】:
-
抱歉,您的问题非常不清楚,可以通过多种不同的方式进行解释。您应该展示一个示例文档以及您希望从更新中获得的结果。
-
感谢您的反馈,我更新了我的问题。如果我可以进一步澄清,请告诉我。
-
编写“抽象案例”的问题在于,适合该案例的答案几乎从不适用于您试图代表并最终解决的现实世界场景。我会展示你的真实数据,或者至少与真实数据一样接近。您的
base64图像不太可能像["img1", "img2", "img3]一样简单,当然是复杂的编码字符串。因此,重要的是人们要知道这是否只是直接在每个数组索引中的普通“base64”数据,或者它是否驻留在另一个文档中,带有一些标识符或键。 -
我同意!但是,在这种情况下,它实际上只是一个字符串,就像在抽象情况下一样。如果我输入真实数据,它会占用太多页面而无法使用。
标签: javascript node.js mongodb express mongoose