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

Mongodb - съответствие на регулярен израз на ключове за поддокументи

Не е възможно да се правят заявки срещу ключове на документи по този начин. Можете да търсите точни съвпадения, като използвате $exists , но не можете да намерите имена на ключове, които съответстват на шаблон.

Предполагам (може би неправилно), че се опитвате да намерите документи, които имат URL поддокумент, и че не всички документи ще имат това? Защо не преместите този тип информация на ниво надолу, нещо като:

{
  payload: {
    type: "url",
    url: "Facebook.com",
    ...
  }
}

Тогава можете да направите заявка като:

db.foo.find({"payload.type": "url", ...})

Ще бъда небрежен, ако не отбележа, че не трябва да използвате точки (. ) е имена на ключове в MongoDB. В някои случаи е възможно да създавате документи като този, но това ще доведе до големи обърквания, докато се опитвате да правите заявки във вградени документи (където Mongo използва точка като "разделител на пътя", така да се каже).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Връщане само на конкретни полета от поддокумента на проекционния масив

  2. Как да сумирате всички полета в поддокумент на MongoDB?

  3. Нуждаете се от различен брой на множество полета, които са били обединени от друга колекция с помощта на заявка за агрегиране на mongodb

  4. Как да получите колекция от документи от курсора на mongodb?

  5. Мога ли да използвам MongoDB като заместител на CoreData в iOS?