sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB tillåter inte användning av '.' i nyckel

Du kan ställa in check_keys till False enligt källan :

 test.insert(d,check_keys=False)


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

Det fungerar verkligen:

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

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

Dokstringen säger:

Du verkar kunna använda vilket tecken som helst förutom de två $ eller . så ett ledande understreck eller någon annan karaktär skulle vara bra och förmodligen ett bättre alternativ.

Det finns information i faq om escape :

Och vanliga frågor med punktnoter förklarar varför man använder . är ingen bra idé:




  1. Finns det en längdgräns för fältvärden i mongo-frågor?

  2. Slå upp med en rad objekt

  3. Samtidighet i gopkg.in/mgo.v2 (Mongo, Go)

  4. Kryptera Mongo-data i Meteorjs