簡體   English   中英

用貓鼬更新文檔

[英]updating a document in mongoose

因此,我有一個集合和該集合的模型,我們稱其為Post。 如您在代碼中所見,我想創建一種排序機制。

var assignOrder = function(callback){
    var donePosts = 0;
    Post.find().sort({publishDate: 1}).exec(function(err, posts){
        for(var i = 0; i < posts.length; i++){
            var post = posts[i];
            var previousPost = posts[i-1] || {};
            var nextPost = posts[i+1] || {};

            post.previousPost = previousPost.slug;
            post.nextPost = nextPost.slug;

            post.update(function(err, post, affected){
                if(++donePosts === posts.length){
                    callback();
                }
            });
        }
    });
};

我不明白為什么帖子沒有在數據庫中更新。
我收到錯誤消息:錯誤:[MongoError:不允許對_id進行Mod],但是我沒有在任何地方設置新的_id。

謝謝

使用save而不是update將更改提交到模型實例。

var assignOrder = function(callback){
    var donePosts = 0;
    Post.find().sort({publishDate: 1}).exec(function(err, posts){
        for(var i = 0; i < posts.length; i++){
            var post = posts[i];
            var previousPost = posts[i-1] || {};
            var nextPost = posts[i+1] || {};

            post.previousPost = previousPost.slug;
            post.nextPost = nextPost.slug;

            // Call save here, not update.
            post.save(function(err, post, affected){
                if(++donePosts === posts.length){
                    callback();
                }
            });
        }
    });
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM