MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách kiểm tra $ setDifference trong hai mảng bằng cách sử dụng mongo-query

Vì đây là phần tiếp theo của một trong những câu trả lời trước đây của tôi, tôi sẽ cố gắng sửa mã của bạn. Điểm mấu chốt là bạn cần hai truy vấn vì bạn không thể nâng cấp cơ sở dữ liệu của mình, vì vậy mã sẽ giống như bên dưới:

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. Xuất tệp system.profile từ MongoDB không hoạt động

  2. Làm cách nào để đăng ký dịch vụ mongodb sử dụng MongoClient, Singleton hoặc phạm vi?

  3. MongoDB:Chèn hàng loạt (Bulk.insert) so với chèn nhiều (chèn ([...]))

  4. Trong Meteor.js, làm thế nào để tôi có hai dự án phát triển sử dụng cùng một phiên bản Mongo?

  5. Sử dụng findOne in a loop mất quá nhiều thời gian trong Node.js