Thursday 2 November 2017

Org Bson Typer Binære Alternativer


Føreren inneholder flere klasser og grensesnitt som brukes til å representere BSON-dokumenter. Selv om det vanligvis ikke er behov for brukere av høyhastighets driver-API, er BsonDocument-klassen sentral for måten at dokumentene styres internt av sjåføren. BsonDocument-klassen kan representere dynamisk strukturert dokumenter av noe kompleksitet med en type sikker API For eksempel kan dokumentet bygges som et BsonDocument som følger. Type sikkerhet kommer fra BsonDocument implementering Map String, BsonValue, så selv innebygde typer som Int String and List må pakkes inn i en underklasse av BsonValue For en komplett liste over BsonValue-undertyper, vennligst se BsonValue API-dokumentasjonen. De fleste applikasjoner vil bruke Dokument klassen i stedet Som BsonDocument, kan Dokument-klassen representere dynamisk strukturerte dokumenter av hvilken som helst kompleksitet, men typingen er mye løsere, som dokument implementerer kartstreng, objekt Som et resultat kan det samme dokumentet som ovenfor konstrueres ved hjelp av D ocument-klassen som følger. Det er mindre kode å skrive, men kjøretidsfeil er mulig hvis du tilfeldigvis legger til en forekomst av en ikke-støttet verdi-type. De mest brukte verdi-typene er. Det er faktisk mulig å endre disse mappings mekanismen for å gjøre det er dekket senere i denne referansen. Selv om det ikke anbefales for nye applikasjoner, kan de som oppgraderes fra 2 x driver-serien fortsette å bruke DBObject-grensesnittet til å representere BSON-dokumenter. DBObject ligner på Dokument ved at det representerer BSON-verdier som Objekt, men det har en noen mangler som var umulige å overvinne. Det er et grensesnitt i stedet for en klasse, så det er ikke API kan ikke utvides uten å bryte binær kompatibilitet. Det gjør ikke egentlig å implementere Map String, Object. because det er et grensesnitt, en egen konkret klasse kalt BasicDBObject som implementerer det grensesnittet, er nødvendig. For å knytte disse sammen, inneholder driveren et lite, men kraftig grensesnitt kalt Bson Any class som representerer en B SON-dokumentet, enten inkludert i sjåføren selv eller fra en tredjepart, kan implementere dette grensesnittet og kan deretter brukes til noe sted i API på høyt nivå der et BSON-dokument kreves. De tre klassene som diskuteres ovenfor implementerer dette grensesnittet, og det kan også brukes utveksling basert på behovene til en gitt applikasjon For eksempel. Readers og Writers. jsonutil Verktøy for bruk av Python s json modul med BSON documents. Tools for bruk av Python s json modul med BSON dokumenter. Denne modulen gir to hjelpemetoder dumper og laster som pakker inn de innfødte json-metodene og gir eksplisitt BSON-konvertering til og fra json Dette tillater spesialisert koding og dekoding av BSON-dokumenter i MongoDB Extended JSON s Strenge modus Dette lar deg kode dekode BSON-dokumenter til JSON selv når de bruker spesielle BSON-typer. Eksempel bruk serialisering. Eksempel bruk deserialization. Alternativt kan du manuelt passere standard til Det vant t håndtere binære og kode forekomster som de er utvidet strenger du kan ikke gi tilpassede standardinnstillinger, men det blir raskere da det er mindre rekursjon. Hvis din applikasjon ikke trenger fleksibiliteten som tilbys av JSONOptions og bruker mye tid i jsonutil-modulen, se til python-bsonjs for en fin ytelsesforbedring python-bsonjs er en rask BSON til MongoDB Extended JSON-omformer for Python bygget på toppen av libbson python-bsonjs fungerer best med PyMongo ved bruk av RawBSONDocument. Changed i versjon 2 8 Utdataformatet for tidsstempel har endret seg fra til Dette nye formatet vil bli dekodet til en forekomst av tidsstempel Det gamle formatet vil fortsette å dekodes til en python dikt som før. Koding til det gamle formatet støttes ikke lenger, da det aldri ble korrekt og tapte typen informasjon Lagt til støtte for nummer Langt og udefinert - nytt i MongoDB 2 6 - og parsing dato i ISO-8601 format. Konfigurert i versjon 2 7 Bevarer rekkefølge når rendering SON, Timestamp, Kode, Binær og DBRef forekomster. Konfigurert i versjon 2 3 Lagt dumper og loa ds-hjelpere til automatisk å håndtere konvertering til og fra json og støtter Binary and Code. class DatetimeRepresentation LEGACY 0.Legacy MongoDB Extended JSON datetime representasjon. forekomster vil bli kodet til JSON i formatet dateAsMilliseconds er et 64-bits signert heltall som gir antall millisekunder siden Unix epoken UTC Dette var standardkodingen før PyMongo versjon 3 4.Ny i versjon 3 4.NumberLong datetime-representasjon. forekomster vil bli kodet til JSON i formatet dateAsMilliseconds er strengrepresentasjonen av et 64-bits signert heltall som gir antall millisekunder siden Unix epoken UTC. New i versjon 3 4.ISO-8601 datetime-representasjon. forekomster som er større enn eller lik Unix epoken UTC, vil bli kodet til JSON i formatet forekomster før Unix epoken UTC blir kodet som om datetime-representasjonen er NUMBERLONG. New i versjon 3 4.class JSONOptions. Encapsulates JSON-alternativer for dumper og Loads. Raises ConfigurationError on Python 2 6 hvis simplejson ikke er installert og documentclass er ikke standard dict. strictnumberlong Hvis True Int64 objekter er kodet til MongoDB Extended JSON s Streng modus type NumberLong dvs. Ellers vil de bli kodet som en int Standard til False. datetimerepresentasjon Representasjonen som skal brukes ved koding av forekomster av standardene til LEGACY. strictuuid Hvis True-objektet er kodet til MongoDB Extended JSON s Strenge modusstype Binær Ellers blir det kodet som Standard til False. documentclass BSON-dokumenter returnert av belastninger vil bli dekodet til en instans av denne klassen Må være en underklasse av Standard til dict. uuidrepresentation BSON-representasjonen som skal brukes når du koder og dekoderer jeg nstances of Default til PYTHONLEGACY. tzaware Hvis ekte MongoDB Extended JSON s Strengt modustype Dato blir dekodet til tidssonenes bevisst forekomster av Ellers vil de være naive Standard til True. tzinfo En underklasse som spesifiserer tidszonen der datetime objekter skal dekodes. Standard til utc. args argumenter til CodecOptions. kwargs argumenter til CodecOptions. New i versjon 3 4. DEFAULTJSONOPTIONS JSONOptions strictnumberlong False, datetimerepresentation 0, strictuuid False, documentclass dikt, tzaware True, uuidrepresentation PYTHONLEGACY, unicodedecodeerrorhandler strikt, tzinfo objekt på 0x7feb78b44e50. Standard JSONOptions for JSON koding dekoding. New i versjon 3 4. STRICTJSONOPTIONS JSONOptions strictnumberlong True, datasimerepresentation 2, strictuuid True, documentclass dikt, tzaware True, uuidrepresentation PYTHONLEGACY, unicodedecodeerrorhandler strikt, tzinfo objekt på 0x7feb78b44e50.JSONOptions for MongoDB Extended JSON s Strenge moduskoding. Ny i versjon 3 4. Hjelperfunksjon som brytes. Rekursiv funksjon som håndterer alle BSON-typer, inkludert Binary og Code. Specification Version 1 1.BSON er et binært format hvor null eller flere ordnede nøkkelparametre lagres som en enkelt enhet. Vi kaller denne enheten et dokument. Følgende grammatikk angir versjon 1 1 av BSON-standarden Vi har skrevet grammatikken ved hjelp av en pseudo-BNF-syntaks Gyldig BSON-data er representert ved dokumentets ikke-terminale. Basiske typer. Følgende grunntyper brukes som terminaler i resten av grammatikken Hver type må serialiseres i small endian format.4 bytes 32-biters signert heltall, to komplement.8 byte 64-bits signert heltall, to s komplement.8 byte 64-bit usignert heltall.8 byte 64-bit IEEE 754 -2008 binært flytpunkt.16 byte 128-bit IEEE 754-2008 desimal flytpunkt. Følgende angir resten av BSON grammatikken Merk at citerte strenger representerer terminaler, og skal tolkes med C-semantikk, f. eks. X01 representerer byte 0000 0001 også Legg merke til dette vi bruker operatøren som stenografi for repetisjon e g x01 2 er x01 x01 Når det brukes som en unary operator, betyr det at repetisjonen kan forekomme 0 eller flere ganger. int32 elist x00. x0B ename cstring cstring. Regular expression - Den første cstring er regex mønsteret, det andre er regex opsjonsstrengen Alternativer identifiseres med tegn, som må lagres i alfabetisk rekkefølge Gyldige alternativer er jeg for tilfelle usikre samsvar, m for multiline matching, x for verbose modus, l for å gjøre w, W, etc locale avhengig, s for dotall modus matcher alt, og du for å gjøre w, W, etc match unicode. x0C ename strengbyte 12.DBPointer Utdatert. x0D ename-streng. x0E ename-streng. x0F ename codews. JavaScript kode w omfang. x10 ename int32. x11 ename uint64. x12 ename int64. x13 ename decimal128.String - Int32 er antall bytes i byte 1 for den etterfølgende x00 Byten er null eller flere UTF-8 kodede tegn. Zero eller flere endrede UTF-8 kodede tegn etterfulgt av x00 Byten SKAL INTE inneholde x00 , derfor er det ikke fullt UTF-8.int32 subtype byte. Binary - Int32 er antall byte i byte. Generic binær subtype. int32 streng document. Array - Dokumentet for en array er et normalt BSON-dokument med heltall verdier for nøklene, starter med 0 og fortsetter i rekkefølge. For eksempel vil gruppen rød, blå bli kodet som dokumentet. Nøklene må være i stigende numerisk rekkefølge. UTC datetime - Int64 er UTC millisekunder siden Unix epoken. Timestamp - Spesiell intern type brukt av MongoDB replikering og sharding Første 4 byte er en økning, andre 4 er en tidsstempel. Min nøkkel - Spesiell type som sammenligner lavere enn alle andre mulige BSON elementverdier. Max nøkkel - Spesiell type som sammenligner høyere enn alle andre mulige BSON elem ent-verdier. Generisk binær undertype - Dette er den vanligste binære deltypen og bør være standard for drivere og verktøy. BSON binær eller BinData datatype brukes til å representere arrayer av byte Det er noe analogt med Java-begrepet av en ByteArray BSON binære verdier har en subtype Dette brukes til å indikere hva slags data som er i byte-arrayet Subtypes fra null til 127 er forhåndsdefinerte eller reservert Subtypes fra 128-255 er brukerdefinerte. x02 Binær gammel - Dette pleide å være standard undertype, men ble avskrevet til fordel for x00. Drivere og verktøy bør være sikker på å håndtere x02 på riktig måte. Strukturen til binære data, byte-arrayet i binær ikke-terminal må være en int32 etterfulgt av en byte Int32 er antall byte i repetisjonen. x03 UUID Old - Dette pleide å være UUID-undertypen, men ble avskrevet til fordel for x04. Drivere og verktøy for språk med en innfødt UUID-type skal håndtere x03 på riktig måte. x80- xFF Brukerdefinerte undertyper De binære dataene kan være noe. Code w scope - Int32 er lengden i byte av hele codews-verdien Strengen er JavaScript-kode Dokumentet er en kartlegging fra identifikatorer til verdier som representerer omfanget der strengen bør evalueres. Driveren inneholder flere klasser og grensesnitt som brukes til å representere BSON-dokumenter. Selv om det generelt ikke er nødvendig for brukere av høynivå driver API, er BsonDocument-klassen sentral for måten at dokumentene styres internt av sjåføren The BsonDocument klassen kan representere dynamisk strukturerte dokumenter av noe kompleksitet med en type sikker API. For eksempel kan dokumentet bygges som et BsonDocument som følger. Type sikkerhet kommer fra BsonDocument implementering Map String, BsonValue så selv innebygde typer som Int String og listen må pakkes inn i en underklasse av BsonValue. For en komplett liste over BsonValue-undertyper, vennligst se BsonValue API-dokumentasjonen. De fleste applikasjoner w Syk bruk av Dokument-klassen i stedet Som BsonDocument kan Dokument-klassen representere dynamisk strukturerte dokumenter av noe kompleksitet, men det er mye lettere å skrive, da dokumentet implementerer kartstreng, objekt. Som et resultat kan det samme dokumentet som ovenfor konstrueres ved hjelp av Dokument-klassen som følger. Det er mindre kode å skrive, men kjøretidsfeil er mulig hvis du tilfeldigvis legger til en forekomst av en ikke-støttet verdi type. De vanligste verdiene er. Det er faktisk mulig å endre disse mappings mekanismen for å gjøre det er dekket senere i denne referansen. Selv om det ikke anbefales for nye applikasjoner, kan de som oppgraderer fra 2 x driveren serien fortsette å bruke DBObject-grensesnittet til å representere BSON-dokumenter. DBObject ligner på Dokument ved at det representerer BSON-verdier som Objekt, men det har noen mangler det var umulig å overvinne. Det er et grensesnitt snarere enn en klasse, så det er ikke mulig å utvide API-en uten å bryte binær kompatibilitet. implementerer egentlig ikke Map String, Object. because det er et grensesnitt, en separat betongklasse kalt BasicDBObject som implementerer det grensesnittet, er nødvendig. For å knytte disse sammen, inneholder driveren et lite, men kraftig grensesnitt som heter Bson Any class som representerer en BSON-dokumentet, enten det er inkludert i sjåføren selv eller fra en tredjepart, kan implementere dette grensesnittet og kan deretter brukes til noe sted i API på høyt nivå der et BSON-dokument kreves. De tre klassene som diskuteres ovenfor implementerer dette grensesnittet, og det kan også brukes utveksling basert på behovene til en gitt applikasjon For eksempel. Readers og Writers. BSON serialisering og deserialiation. new BSON - Oppretter en ny BSON seralizer deserializer du kan bruke til å serialisere og deserialisere BSON. BSON serialiseringsmetoden tar et javascript objekt og et valgfritt alternativobjekt og returnerer en buffer. param objekter Javascript-objektet til serialisering. Parallell serializer vil sjekke om tastene er gyldige. param serialisere javascript-funksjonene. returnerer returnerer en buffer-forekomst. BSON serializeWithBufferAndIndex-metoden tar et objekt, en målbuffer-forekomst og et valgfritt alternativobjekt og returnerer slutt serialiseringsindeksen i den endelige bufferen. buffer, alternativer. param objekter Javascript-objektet til serialisering. param buffer bufferen du forhåndsallokert for å lagre det serialiserte BSON objektet. Parallell serializer vil sjekke om tastene er gyldige. param serialisere javascript-funksjonene. param ignorerer udefinerte felt. param indeksen i bufferen der vi ønsker å begynne serialisering inn i. returnerer returnerer indeksen peker til den siste skriftlige byten i bufferen. BSON calculateObjectSize-metoden tar et javascriptobjekt og et valgfritt alternativobjekt og returnerer størrelsen på BSON-objektet. param objekter Javascript-objektet til serialisering. param serialisere javascript-funksjonene. returnerer returnerer en buffer-forekomst. BSON deserialiseringsmetoden tar en buffer og et valgfritt alternativobjekt og returnerer en deserialisert Javascript-objekt. param evaluere funksjoner i BSON dokumentet scoped til objektet deserialized. param cache evaluerte funksjoner for gjenbruk. param bruker en crc32 kode for caching, ellers bruk strengen av funksjonen. param når deserialisering av en lang vil passe den inn i et tall hvis den er mindre enn 53 biter. param når deserialisering av en binær vil returnere den som en buffer-forekomst. param når deserialisering vil fremme BSON-verdier til deres nærmeste tilsvarende typer. param tillater å spesifisere om det er hvilke felt vi ønsker å returnere som userialisert råbuffer. param returnerer BSON regulære uttrykk som BSONRegExp instanser. retur returnerer neste indeks i bufferen etter deserialisering x antall dokumenter. BSON deserializeStream-metoden tar en buffer, startIndex og tillater mer kontroll over deserialisering av en buffer som inneholder sammenkoblede BSON-dokumenter. startIndex, numberOfDocuments, dokumenter, docStartIndex, alternativer. param buffer bufferen inneholder det serialiserte settet av BSON dokumenter. param startIndex startindeksen i databufferen der deserialiseringen skal starte. param nummerOfDocuments antall dokumenter for å deserialisere. param dokumenterer en matrise hvor du skal lagre de deserialiserte dokumentene. param docStartIndex indeksen i dokumentene array fra hvor du skal begynne å legge inn dokumenter. param evaluere funksjoner i BSON dokumentet scoped til objektet deserialized. param cache evaluerte funksjoner for gjenbruk. param bruker en crc32 kode for caching, ellers bruk strengen av funksjonen. param når deserialisering av en lang vil passe den inn i et tall hvis den er mindre enn 53 biter. param når deserialisering av en binær vil returnere den som en buffer-forekomst. param når deserialisering vil fremme BSON-verdier til deres nærmeste tilsvarende typer. param tillater å spesifisere om det er hvilke felt vi ønsker å returnere som userialisert råbuffer. param returnerer BSON regulære uttrykk som BSONRegExp instanser. retur returnerer de deserialiserte Javascript Object. Manage utviklerteam med varierende tillatelser og flere prosjekter Lær mer om private pakker og organisasjoner.

No comments:

Post a Comment