mongodb的$addToSet能不能指定插入的位置


现有如下数据:


 javascript


 {
    "_id" : ObjectId("54f664d28c33dbfd5a4aca26"),
    "UserID" : 56,
    "UserAction" : [
        {
            "ActionNum" : 2,
            "ActionObjID" : "34343434",
            "ActionTime" : 98989898,
            "ActionStatus" : "show"
        },
        {
            "ActionNum" : 2,
            "ActionObjID" : 53535353,
            "ActionTime" : 123435456,
            "ActionStatus" : "show"
        }]
}

使用$addToSet插入一个新的对象:


 javascript


 {
    "ActionNum" : 1,
    "ActionObjID" : 7362472,
    "ActionTime" : 3481235092,
    "ActionStatus" : "hide"
}

能不能把这个对象插入到上面的UserAction数组的第一个第一位而不是最后一位呢?
就像使用$push的时候可以使用$position一样指定插入的位置。

node.js mongodb

新藤千寻的眼罩 9 years, 10 months ago

不能,既然是 Set,那位置就不重要了,不然一定是哪里不对了……

SEELE answered 9 years, 11 months ago

可以考虑用 findAndUpdate 来 $push, 查询条件是数组中没有这个元素

土御门春虎 answered 9 years, 11 months ago

不能,既然是 Set,那位置就不重要了,不然一定是哪里不对了……

loli狩猎者 answered 9 years, 10 months ago

可以考虑用 findAndUpdate 来 $push, 查询条件是数组中没有这个元素

wlwllq answered 9 years, 10 months ago

Your Answer