মঙ্গুজের সন্ধান বাই বাই আইড এবং আপডেটটি সঠিক মডেলটি ফিরছে না


103

আমার এমন একটি সমস্যা আছে যা আমি এর আগে মঙ্গুজের সন্ধানে বাইআইডএন্ডআপটেট কলব্যাকের মধ্যে সঠিক মডেলটি ফিরিয়ে দিচ্ছি না।

কোডটি এখানে:

    var id = args._id;
    var updateObj = {updatedDate: Date.now()};
    _.extend(updateObj, args);

    Model.findByIdAndUpdate(id, updateObj, function(err, model) {
        if (err) {
            logger.error(modelString +':edit' + modelString +' - ' + err.message);
            self.emit('item:failure', 'Failed to edit ' + modelString);
            return;
        }
        self.emit('item:success', model);
    });

ডিবিতে মূল দস্তাবেজটি এমন দেখাচ্ছে:

{
    _id: 1234
    descriptors: Array[2],
    name: 'Test Name 1'
}

আপডেট ওবিজে যাচ্ছেন এটি দেখতে দেখতে:

{
    _id: 1234
    descriptors: Array[2],
    name: 'Test Name 2'
}  

কলব্যাক থেকে ফিরে আসা মডেলটি মূল মডেলের সাথে সমান, আপডেটডবজ নয়। আমি যদি ডিবিটিকে জিজ্ঞাসা করি তবে এটি সঠিকভাবে আপডেট করা হয়েছে। এটি কেবল ডাটাবেস থেকে ফেরানো হচ্ছে না।

এটি 'বোকা-ব্যবহারকারীর' ত্রুটির মতো অনুভব করে তবে আমি এটি দেখতে পারি না। কোন ধারণা ব্যাপকভাবে প্রশংসা।


4
এটি একটি দুর্দান্ত জায়গা। এবং প্যাকেজটির নিজস্ব ইউনিট পরীক্ষাগুলি পেরিয়ে যাওয়ার কারণে কেন আমার সমস্ত প্রকল্পগুলিকে সংস্করণগুলির সাথে মিলে রাখতে হবে তা একটি অনুস্মারক। ধন্যবাদ.
জোনআরেড

উত্তর:


299

মঙ্গুজ ৪.০-এ, (এবং ) newবিকল্পের ডিফল্ট মান পরিবর্তিত হয়েছে ( রিলিজ নোটগুলির # 2262 দেখুন )। এর অর্থ হল আপডেটটি প্রয়োগের পরে ডকটির নতুন সংস্করণটি পেতে আপনাকে স্পষ্টভাবে বিকল্পটি সেট করতে হবে:findByIdAndUpdatefindOneAndUpdatefalsetrue

Model.findByIdAndUpdate(id, updateObj, {new: true}, function(err, model) {...

4
এছাড়াও 'তৈরি' পদ্ধতির রিটার্ন মানগুলিতে পরিবর্তনগুলি ধরা পড়ে। চিয়ারস বন্ধু, আমি পারলে দু'বার ভোট দিতাম।
জোনআরেড

4
মঙ্গুজ প্রকল্পে আপডেট হওয়া ডক্সের জন্য একটি পিআরও রাখুন, তাই আশা করি এটি অন্য কাউকেই ধরবে না।
জোনরেড

4
ওহ ছেলে আপনাকে @ জোহনিএইচকে ধন্যবাদ জানায়। এটা আমার ক্ষতিগ্রস্থ। অবশ্যই আমি নতুনটি ফিরে চাই। সম্ভবত এপিআইয়ের সাথে আরও সামঞ্জস্যপূর্ণ তবে সাধারণ জ্ঞানের সাথে না ... আমি যদি কিছু আপডেট করি তবে আমি পরিবর্তনগুলি দেখতে চাই। ধন্যবাদ
মঙ্গুজ

21
কি দারুন! তারা কী ভয়াবহ সিদ্ধান্ত নিয়েছে! এটি আপডেটের পরিবর্তে প্রথম স্থানে অনুসন্ধান করার একমাত্র পয়েন্ট।
অ্যাডাম লকহার্ট

9
আমি কেন বুঝতে পারছি না যে কেন নতুনের পরিবর্তে কারও প্রতিক্রিয়ায় পুরানো ডকুমেন্ট থাকবে
emilioriosvz
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.