使用mongo集合对象

时间:2017-12-21 12:05:33

标签: javascript arrays node.js mongodb mongoose

我想更改幻灯片子文档中对象中 sort_order 键的顺序。

对于Eg:我想在 A2 上方移动标题为 A3 的幻灯片。即。 A3(3)sort_order值更改为 2 ,而 A2 的值将更改为 3

怎么办?

下面是db对象。

{
    "_id" : ObjectId("5a3b8cc68884dd1140a9a5b8"),
    "title" : "Sort Test",
    "user_id" : ObjectId("59e08e45f081170f582e95cc"),
    "status" : "active",
    "slides" : [ 
        {
            "_id" : ObjectId("5a3b8cc68884dd1140a9a5b9"),
            "sort_order" : 0,
            "content" : "Sort Test",
            "title" : "Sort Test"
        }, 
        {
            "_id" : ObjectId("5a3b8cda8884dd1140a9a5ba"),
            "sort_order" : 1,
            "content" : "Text Contents here...",
            "title" : "A1"
        }, 
        {
            "_id" : ObjectId("5a3b8ce48884dd1140a9a5bb"),
            "sort_order" : 2,
            "content" : "Text Contents here...",
            "title" : "A2"
        }, 
        {
            "_id" : ObjectId("5a3b8cec8884dd1140a9a5bc"),
            "sort_order" : 3,
            "content" : "Text Contents here...",
            "title" : "A3"
        },
        {
            "_id" : ObjectId("5a3b8cec8884dd1140455bc"),
            "sort_order" : 4,
            "content" : "Text Contents here...",
            "title" : "A4"
        }
    ],
    "description" : "Sort Test",
    "__v" : 0
}

1 个答案:

答案 0 :(得分:1)

使用此方法,您可以创建一个具有相同元素的新数组,以及您要求切换的元素(我认为是您所问的)。 然后,您只需使用新数组更新数据库中的幻灯片字段。

@Helpers.LabeledGroup("Label:", "infoBox", @@<text>
                                                                                                                                            <input type="text" id="infoBox"
                                                                                                                                                   data-dojo-type="app/widget/form/InfoBox" />
</text>)