Wie speichern unsigned long long (uint64_t) Werte in einer MongoDB-Dokument?

Ich soll zum speichern von zahlen des Typs unsigned long long (uint64_t) in einer MongoDB-Dokument, wie mache ich es?

Muss ich verwenden, unsigned long long, denn ich bin mit Twitter-API, die verwendet unsigned 64-bit-Ganzzahlen https://dev.twitter.com/docs/twitter-ids-json-and-snowflake

Bereich der nicht signierten 64-bit-integral-Typ muss zum represended von 8 Byte und einen Datenbereich von 0 bis 18,446,744,073,709,551,615.

Ich bin mit dem C++ MongoDB-Treiber und die append-member-Funktion der BSONArrayBuilder Klasse nicht eine überlastung für unsigned long long, nur für lange.

Hier der Fehler G++ 4.7.2 ausspuckt wenn ich versuche zu nennen, arrayBuilder.append(id), mit einer id vom Typ uint64_t:

MongoDB/mongo/db/../bson/bson-inl.h:342:9: error: call of overloaded append(const char*&, long long unsigned int&)’ is ambiguous
MongoDB/mongo/db/../bson/bsonobjbuilder.h:167:25: note: mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, bool)
MongoDB/mongo/db/../bson/bsonobjbuilder.h:175:25: note: virtual mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, int)
MongoDB/mongo/db/../bson/bsonobjbuilder.h:183:25: note: mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, unsigned int)
MongoDB/mongo/db/../bson/bsonobjbuilder.h:188:25: note: virtual mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, long long int)
MongoDB/mongo/db/../bson/bsonobjbuilder.h:244:25: note: virtual mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, double)
MongoDB/mongo/db/../bson/bsonobjbuilder.h:324:25: note: mongo::BSONObjBuilder& mongo::BSONObjBuilder::append(const mongo::StringData&, mongo::Date_t)
  • Ich weiß, dass die BSON-Spezifikation hat int64 definiert als 8-Byte (64-bit Ganzzahl).
  • Ich NICHT wollen, um einen string für die ID.
InformationsquelleAutor bitek | 2012-12-21
Schreibe einen Kommentar