This question already has answers here:
how do i add a value to the top of an array in mongodb?
                                
                                    (2个答案)
                                
                        
                                5年前关闭。
            
                    
什么是通过unshift将值findByIdAndUpdate导入Mongoose文档数组的正确方法?

我尝试了这不会给出错误,但似乎也没有更新值

Schema.findById(id, function(err, doc){
    console.log(doc.array.length); // => 1
    Schema.findByIdAndUpdate(id,
        { array: { unshift: { property: 'value' } } },
        { upsert: true },
        function(err, doc) {
            console.log(doc.array.length); // Also => 1
        }
    );
});


$push有效。 $unshift给出错误


[MongoError: exception: Unknown modifier: $unshift



Docs say to use unshift instead,但不起作用。还是我使用错了?它不会给出任何错误,只是不会更新数组。

最佳答案

Found out$position运算符与$each结合使用,与$push一起实现相同的目的。

{ array: { $push: { property: {$each: ['value'], $position: 0 } } } },

关于node.js - Mongoose 不动findAndUpdateById ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28360526/

10-09 08:23