MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB n'autorise pas l'utilisation de '.' en clé

Vous pouvez définir check_keys à False selon la source :

 test.insert(d,check_keys=False)


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

Cela fonctionne en effet :

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

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

La chaîne de documentation indique :

Vous semblez pouvoir utiliser n'importe quel caractère à l'exception des deux $ ou . donc un trait de soulignement ou tout autre caractère serait bien et probablement une meilleure option.

Il y a des informations dans la FAQ sur échapper :

Et la FAQ sur la notation par points explique pourquoi utiliser . n'est pas une bonne idée :