MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

उप-दस्तावेज़ों के बूलियन मान को टॉगल करें

मैं उस परिणाम को नहीं देख सकता जिसका आप दावा करते हैं, जिसका अर्थ है कि यह मेरे और बाकी दुनिया के लिए काम करता है। यहाँ एक एकल स्क्रिप्ट उदाहरण के रूप में संक्षिप्त सूची दी गई है:

    var async = require('async'),
        mongoose = require('mongoose'),
        Schema = mongoose.Schema;

    mongoose.connect('mongodb://localhost/test');

    var invitationSchema = new Schema({
      "ID": { "type": Schema.Types.ObjectId },
      "Accepted": Boolean
    });

    var userSchema = new Schema({
      "Invitation": [invitationSchema]
    });


    var User = mongoose.model( 'User', userSchema );

    User.find({},'Invitation',function(err,docs) {
      if (err) throw err;
      var results = [];

      async.each(docs,function(doc,callback) {
        async.each(doc.Invitation, function(invite,callback) {
          User.findOneAndUpdate(
            { "_id": doc._id, "Invitation._id": invite._id },
            { "$set": { "Invitation.$.Accepted": !invite.Accepted } },
            function(err,doc) {
              results.push(doc);
              callback(err);
            }
          );
        },callback);
      },function(err) {
        if (err) throw err;
        console.log( results.slice(-1)[0] );
        process.exit();
      });
    });

ताकि अनुरोध के अनुसार दोनों मानों को स्पष्ट रूप से "टॉगल" किया जा सके और पूरी तरह से काम किया जा सके।

यह मेरी ओर से एक ही बार में परिणाम है:

{ _id: 54be2f3360c191cf9edd7236,
  Invitation:
   [ { __v: 0,
       ID: 54afaabd88694dc019d3b628,
       __t: 'USER',
       _id: 54b5022b583973580c706784,
       Accepted: true },
     { __v: 0,
       ID: 54af6ce091324fd00f97a15f,
       __t: 'USER',
       _id: 54bde39cdd55dd9016271f14,
       Accepted: true } ] }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB एकत्रीकरण को गति दें

  2. लुमेन - मोंगोडब - जेन्सेजर्स/लारवेल-मोंगोडब - पोस्टमैन

  3. विंडो सिस्टम पर उल्का में मोंगोडब पथ सेट करने में असमर्थ

  4. नेवले के साथ क्वेरी

  5. जावा ड्राइवर के साथ MongoDB में अंतिम सम्मिलित दस्तावेज़ आईडी प्राप्त करें