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

Zapytanie MongoDB o wiele identyfikatorów ObjectID w Array

Możesz użyć kombinacji findOne() i find() metody kursora wraz z natywnym JavaScript map metodę, aby najpierw uzyskać identyfikator zespołu dla określonego użytkownika (który będzie tablicą ciągów), a następnie użyć funkcji map, aby zmapować tablicę identyfikatorów ciągów zespołów na tablicę ObjectId, a na koniec wysłać zapytanie do kolekcji zespołów z otrzymaną tablicą jako $in wyrażenie operatora:

var teams = db.users.findOne({"name": "User1"}).teams;
var obj_ids = teams.map(function (item){ return ObjectId(item)});
db.teams.find({ "_id": { "$in": obj_ids } });

Wyjście :

/* 0 */
{
    "_id" : ObjectId("5527a9493ebbe2452666c238"),
    "name" : "Team 1"
}

/* 1 */
{
    "_id" : ObjectId("5527b1be3371e3a827fa602c"),
    "name" : "Team 2"
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB wstępnie ładuje dokumenty do pamięci RAM, aby uzyskać lepszą wydajność

  2. MongoEngine określa preferencje odczytu w zapytaniu

  3. $ lookup na ObjectId w tablicy

  4. Mongo groupby month przy użyciu czasu milisekundowego UNIX

  5. W jaki sposób dane w bazie danych MongoDB są przechowywane na dysku?