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

MongoDB nie zezwala na użycie '.' w kluczu

Możesz ustawić check_keys na Fałsz według źródła :

 test.insert(d,check_keys=False)


 def insert(self, doc_or_docs, manipulate=True,
           safe=None, check_keys=True, continue_on_error=False, **kwargs):

To rzeczywiście działa:

In [28]: d = {'.aaa' : '.bbb'}

In [29]: test.insert(d,check_keys=False)
Out[29]: ObjectId('54ea604bf9664e211e8ed4e6')

Dokument stwierdza:

Wygląda na to, że możesz użyć dowolnego znaku oprócz tylko dwóch $ lub . więc wiodący znak podkreślenia lub jakikolwiek inny znak byłby w porządku i prawdopodobnie lepszym rozwiązaniem.

W FAQ znajdziesz informacje o ucieczce :

A często zadawane pytania dotyczące notacji z kropkami wyjaśniają, dlaczego używa się . nie jest dobrym pomysłem:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Wewnętrzna implementacja indeksowania?

  2. Błąd Django MongoDB Engine podczas uruchamiania tellsiteid

  3. MongoDB jaki jest domyślny użytkownik i hasło?

  4. Jak sortować wyniki według długości łańcucha w MongoDB

  5. Jak zwiększyć wartość liczbową w Mongoose?