sql >> Database >  >> NoSQL >> MongoDB

Dubbele waarden vinden in een MongoDB-array

Waarschijnlijk zullen er veel van deze documenten zijn en daarom wilt u deze per ObjectId.

db.myCollection.aggregate([
  {"$project": {"collegeIDs":1}},
  {"$unwind":"$collegeIDs"},
  {"$group": {"_id":{"_id":"$_id", "cid":"$collegeIDs"}, "count":{"$sum":1}}},
  {"$match": {"count":{"$gt":1}}},
  {"$group": {"_id": "$_id._id", "collegeIDs":{"$addToSet":"$_id.cid"}}}
])

Dit is misschien wat je wilt, niet duidelijk uit je vraag:

db.myCollection.aggregate([
  {"$match": {"userID":"USER001"}},
  {"$project": {"collegeIDs":1, "_id":0}},
  {"$unwind":"$collegeIDs"},
  {"$group": {"_id":"$collegeIDs", "count":{"$sum":1}}},
  {"$match": {"count":{"$gt":1}}},
])



  1. Redis-schildwacht versus clustering

  2. Aangepaste object-ID maken in MongoDB

  3. MongoDB $ milliseconde

  4. Waarom is SQLite sneller dan Redis in deze eenvoudige benchmark?