MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB заявка IN масив от обект

Това не може да стане с проста заявка. Ще трябва да преминете през employee.departments и за всяка итерация да добавите неговия departments_id към масив. След това този масив можете да използвате във втория си ред. Това е нещо, което е най-добре да се направи на избран от вас език.

За да направите това по-лесно, ще трябва да промените вашата схема. Една от възможностите е да съхраните информацията за отдела в досието на служителите, но във вашия случай ще дублирате много данни.

Вместо това предлагам всеки отдел да съдържа списък с идентификационни номера на служители и дати, както следва:

{
        "_id" : ObjectId("4f9643957f8b9a3f0a000004"),
        "dept_name" : "Marketing",
        "managers" : [
        ]
        "employees" : [
            {
                    "employee_id" : ObjectId("4f9643967f8b9a3f0a00005a"),
                    "from_date" : "1990-01-03",
                    "to_date" : "1990-01-15"
            }
        ]
}

В такъв случай можете просто да стартирате:

db.departments.find( { "employees.employee_id": ObjectId("some_id") } );


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:клас java.lang.Double не може да бъде прехвърлен към клас java.lang.Long

  2. Надстройка до ClusterControl Enterprise Edition

  3. Изберете записи, съответстващи на конкатна стойност на две полета в mongodb

  4. Актуализирайте MongoDB документ във VB.NET с C# драйвера

  5. Как да върнете само стойността в MongoDB