問題タブ [bson]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - JSON から PyMongo ObjectId を逆シリアル化できません
MongoDB JSON ドキュメントを BSON json_utilで逆シリアル化できないようです。
json.loads 関数がObjectId()
文字列を詰まらせています。json_util が MongoDB の ObjectId 形式を処理し、使用可能な JSON に変換できることは理解していました。
Python コード:
デコーダ例外が発生します:
何か不足していますか?
java - フラグ値またはBSONObjectIdのいずれかを返します
私はMongoDBを使用してJavaプログラムを書いています。次の3つの結果のいずれかを持つ可能性のある関数を持つクラスが1つあります。
- MongoDBコレクションで関数の入力に適したオブジェクトを探し、それを見つけて、そのObjectIdを返します。
- 上記と同じですが、見つかりません。それを作成し、そのObjectIdを返します。
- 入力はそもそも適切ではないことが判明しました。その入力を単に無視することを示すある種のフラグ値を呼び出し元に返します。
最初の2つのケースは簡単です。3番目にどのような価値を返すことができるかわかりません。000000000000のようなダミーのObjectIdは、無効として拒否されます。
私が考えることができる解決策は、ObjectIdsを文字列として返し、後でObjectIdsに戻すか(3番目のケースで必要なフラグタイプの文字列を返すことができます)、実際には結果がないことを意味するダミーのデータベースアイテムを作成することです(しかし、どこでそのObjectIdを追跡するので、それを調べ続ける必要はありませんか?)これにアプローチする方法についてのより良いアイデアはありますか?
php - MongoDBとそのドライバーは、ドキュメント要素の順序を保持できますか?
キーと値のペアのリストを含むドキュメントを保存するためにMongoDBを使用することを検討しています。これを保存するための安全だが醜く肥大化した方法は次のとおりです
ただし、ドキュメント要素は基本的にBSONデータ構造内で順序付けられているため、原則として次のようになります。
十分なはずです。ただし、ほとんどの言語バインディングはこれらを連想配列として解釈するため、順序がスクランブルされる可能性があります。だから私が知る必要があるのは:
- MongoDB自体は、2番目の形式のアイテムの順序を保持することを約束しますか?
- 言語バインディングには、通常の「便利な」APIが連想配列を返す場合でも、順序付けられた形式で抽出できるAPIがありますか。
ここでは主にJavascriptとPHPに興味がありますが、他の言語についても知りたいです。どんな助けでもありがたいです、または私がRTMに行くことができるいくつかのドキュメントへの単なるリンク。
php - Mongo カーソルを PHP に適切に解析する
MongoCursor を PHP に変換するときは、このスクリプトを使用します。ここで提示されたのは StackOverflow SO
上の方法を使用すると、構造は同じですが、_id は下のスクリプトを使用すると、以下に含まれる結果が得られます。
残念ながら、これにより実際のオブジェクトが Mongo の _id を持つ配列に埋め込まれてしまいます。このような :
このオブジェクトを別のサービスに渡して _id を処理しているため、不明です。
オブジェクトを適切に解析するように PHP ドライバーを納得させるにはどうすればよいですか?
json - Aeson と MongoDB BSON を使用したサポートされていない型 UString
MongoDB Data.Bson の ToJSON および FromJSON インスタンスを生成するために Data.Aeson.TH serveJSON を使用しようとしています。
現時点で私は使用しています:
コンパイル時に次のエラーが生成されます。
ここでの問題は、BSON ドキュメント内の文字列が Ustring であることだと思います。BSON データ内で期待される UString を別の String 型に変換するか、別の方法でマップする必要がありますが、方法については困惑しています。
c# - ネストされたオブジェクトを MongoDB からクエリする
MongoDB からデータを取得するスクリプトを SSIS で作成しました。通常のドキュメントのクエリに問題はありませんが、ネストされたドキュメントから値を取得する方法がわかりません。たとえば、展開された「住所」には、「国」、「都道府県」、「市区町村」、「番地」、および「郵便番号」が含まれます。「国」(フィールド)の値のみを取得することに興味があります。理論的には、「Address.Country」のようなものにする必要があることは理解していますが、コードに実装する方法がわかりません。それを達成するための最良の方法は何ですか?
これは、他のすべてのドキュメントを取得するコードです。
json - MongoDB C ++ドライバーを使用して文字列をBSONに変換するにはどうすればよいですか?
toStringと同様に、文字列をBSONオブジェクトに変換する方法はありますか?C ++ドライバーを使用してドキュメントを削除する必要があります。削除関数は、クエリにBSONオブジェクトが含まれていることを想定しています。
c# - 値としての MongoDB C# フィールド名
MongoDB に動的スキーマがあり、「その他」の BSONDocuments の 1 つが値を持つ異なるドキュメントを持つことができるとします。例えば:
別のレコードには、ドキュメントが 1 つしかありません。
このデータをリレーショナル形式にエクスポートしています。Page、Title、Author を「Other」というフィールドの異なる値としてエクスポートし、25、WC、Dickens を「Other Value」というフィールドの対応する値としてエクスポートしたいと考えています。
つまり、「その他」の可能なドキュメントをループして、これらのドキュメントの名前を変数に割り当て、これらのドキュメントの値を別の値に割り当てたいと考えています。そして、「その他」は配列ではありません...
これを達成するための最良の方法は何ですか?
ありがとう、
パシャ
c++ - バイナリからテキストへのエンコーディング、非印刷文字、プロトコルバッファ、mongodbおよびbson
プロトコルバッファに次のような候補キー(mongodb候補キー、__ id)があります。
ParseToString(std::string)
当然のことながら、bsonドキュメントには印刷されない文字が含まれている可能性があるため、プロトコルバッファでエンコードされた文字列を(経由で)使用することはできません。したがって、私はデータをエンコードするためにascii85エンコーディングを使用しています(このライブラリを使用)。2つの質問があります。
- b85はbson-safeをエンコードしていますか。
- bsonのバイナリタイプは何ですか?mongodb API呼び出しを使用して(バイナリ)文字列をそのフィールドに埋め込むことができる方法はありますか、それとも何らかの形式で処理する必要がある値型を示すための単なる構文糖衣ですか(つまり、ネイティブではありません) mongodbエンティティ)?
編集
したがって、append binary
APIのショーのデータはhex(OMG!)としてエンコードされているため、base85の方がスペース効率が高くなります(私の場合、レコードあたり22バイト)。
ruby-on-rails - Railsアプリでmongodbバックアップからのデータを使用します...つまり、ルビーを使用してBSONをJSONに変換しますか?
新しいRailsアプリにインポートしたいmongodbバックアップからのデータがたくさんあります(mongoを使用して開発していましたが、現在はactiverecordに切り替えています)。
私は明白なことを試しましたBSON.deserialize(doc)
が、最初のレコードのみを返します。私が間違っていることはありますか?BSON ファイルを JSON または MySQL に取り込める別の使用可能な形式に変換する簡単な方法はありますか?
編集:まあ、これは最善の方法ではありませんが、確かに...しかし、ルビーシェルスクリプトを使用してそれらを変換することができました(bsondump
mongodbの一部を利用しています)。
より良い解決策はまだ高く評価されています。