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

Как да намерите документ по вграден елемент в MongoDB PHP

Вашата структура от данни е неудобна за заявка, защото имате масив от вградени документи. С лека промяна в данните можете да улесните работата с тях.

Поставих потребителските идентификатори в масив:

{
 "contestname": "Contest1",  
 "description": "java programming contest", 
 "numteams": 2,
 "teams": [
   {
    "teamname": "superstars",
    "members": [
        "50247314f501384b011019bc",
        "50293cf9f50138446411001c",
        "50293cdff501384464110018"
    ]
   },

   {
    "teamname": "faculty",
    "members": [
        "50247314f501384b0110100c",
        "50293cf9f50138446410001b",
        "50293cdff501384464000019"
    ]
   }
 ],
 "term": "Fall 2012"
}

След това можете да направите PHP еквивалента find() за:

db.contest.find(
        {'teams.members':'50247314f501384b011019bc'},
        {'contestname':1, 'description':1}
    )

Което ще върне съответстващите състезания, които този потребител е въвел:

{
    "_id" : ObjectId("502c108dcbfbffa8b2ead5d2"),
    "contestname" : "Contest1",
    "description" : "java programming contest"
}
{
    "_id" : ObjectId("502c10a1cbfbffa8b2ead5d4"),
    "contestname" : "Contest3",
    "description" : "Grovy programming contest"
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb не се актуализира правилно от 4.2 на 4.4

  2. Обработка на попълнени от Mongoose полета в GraphQL

  3. Проектно поле във вграден документ в рамките на вграден масив

  4. Мангуста:Схема срещу модел?

  5. Защо hasOwnProperty на модела mongoose връща false, когато свойството съществува?