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

Cara memeriksa $setDifference dalam dua array menggunakan mongo-query

Karena ini adalah tindak lanjut dari salah satu jawaban saya sebelumnya, saya akan mencoba memperbaiki kode Anda. Intinya adalah Anda memerlukan dua kueri karena Anda tidak dapat memutakhirkan basis data Anda sehingga kodenya akan terlihat seperti di bawah ini:

var queryResult = db.UserDetails.aggregate(
{
$lookup: {
    from: "UserProducts",
    localField: "UID",
    foreignField: "UID",
    as: "userProduct"
    }
},
{ $unwind: "$userProduct" },
{
    "$project": { "_id" : 0, "userProduct.UPID" : 1 }
},
{
    $group: {
        _id: null,
        userProductUPIDs: { $addToSet: "$userProduct.UPID" }
    }
});

let userProductUPIDs = queryResult.toArray()[0].userProductUPIDs;

db.Groups.aggregate([
    {
        $unwind: "$members.regularStudent"
    },
    {
        $group: {
            _id: null,
            UPIDs: { $addToSet: "$members.regularStudent" }
        }
    },
    {
        $project: {
            members: {
                $setDifference: [ userProductUPIDs , "$UPIDs" ]
            },
            _id : 0
        }
    }
]) // should return 100



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Objek validasi harus memiliki setidaknya satu operator / meteor mongo

  2. MongoDB $menit

  3. Haruskah saya mengembalikan array atau data satu per satu di Mongoose

  4. c# mongodb driver cara memberikan nilai ganda mongo ke c# desimal

  5. MongoRepository findByCreatedAtBetween tidak mengembalikan hasil yang akurat