MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Alihkan nilai boolean dari subdokumen

Saya tidak dapat melihat hasil yang Anda klaim, yang berarti itu bekerja untuk saya dan seluruh dunia. Berikut adalah ringkasan daftar sebagai contoh skrip tunggal:

    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();
      });
    });

Sehingga dengan jelas "beralih" kedua nilai seperti yang diminta dan berfungsi dengan sempurna.

Ini adalah hasil dari saya pada satu tembakan:

{ _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. Cara mengelompokkan dokumen dengan bidang tertentu dalam agregasi mongodb

  2. MongoDB Membedakan Antara undefined vs. null

  3. Bidang penghitungan otomatis di mongodb

  4. MongoDB $arrayToObject

  5. Cara query dengan beberapa kondisi dan kondisi itu tergantung