MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak sprawdzić $setDifference w dwóch tablicach za pomocą mongo-query

Ponieważ jest to kontynuacja jednej z moich poprzednich odpowiedzi, postaram się naprawić Twój kod. Najważniejsze jest to, że potrzebujesz dwóch zapytań, ponieważ nie możesz zaktualizować bazy danych, więc kod powinien wyglądać tak:

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. jak uzyskać Python Mongo Aggregate wyjaśnić za pomocą db.command?

  2. Jak utworzyć nowe pole tablicy za pomocą platformy agregującej?

  3. Wiele wyrażeń $elemMatch do dopasowywania wartości tablicy przy użyciu $all w MongoDB?

  4. zalecany sposób instalacji mongodb na elastycznej łodydze fasoli

  5. MongoDB Jak wykonać zapytanie za pomocą operatora $date?