問題タブ [mongodb-c]

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.

0 投票する
2 に答える
646 参照

c - MongoDBは、$またはCでレコードを取得します

次のMongoDBシェルコードをエミュレートしようとしています。

これは私が試したことです:

しかし、期待どおりに機能していないようです。また、オブジェクトを配列に置き換えてから、オブジェクト内に配列をネストしようとしましたが、役に立ちませんでした。

0 投票する
2 に答える
2131 参照

c - mongodb C のクエリ

私のmongodbデータベースからいくつかのデータを取得する必要があるクエリを作成しようとしています.私のコードに従ってください:

メソッド「mongo_find」(100 行目) の使用方法がわかりません。mongo_cursor へのポインターを返しますが、このポインターを操作できません。これを実現するためのアイデアはありますか?

0 投票する
1 に答える
302 参照

c - 複雑なクエリmongodb c

このようにmongodbクエリを作成しました>

そして私はこれを使ってそれを実行します>

「mongo_cursor_next(cursor)」メソッドを出力すると、「-1」(エラー) が表示されます。クエリのエラーを知りたいです。

前もって感謝します。

0 投票する
3 に答える
1275 参照

c - MongoDB、ZeroMQ、および C

私は大きな問題を抱えています、

ZeroMQ と C を使用するコードと、MongoDB と C を使用する別のコードがあり、このコードをマージする必要がありますが、このコマンドを使用してコンパイルしようとすると:

私はこのエラースタックを手に入れました:

Mongo-C-Driver をインストールしたとき:

logger.c ファイルで、MongoDB-C-api と ZeroMQ-C-api の間の競合を解決するために make STD=c89 を使用しました。エラー スタックが要求する変数を定義しましたが、機能しません。 .

0 投票する
2 に答える
949 参照

mongodb - Mongo Cドライバー、ドキュメントを可能な限り高速に更新

簡単に言うと、時系列データをドキュメントに保存する必要があります。私は、30分間のデータを担当するドキュメントを持つことが合理的であると判断しました。ドキュメントは次のようになります。

しかし、これは毎秒更新される約数百/千のドキュメントの1つにすぎません。

これは、30分ごとに、、およびを使用してドキュメントを作成することを意味_idfield1ますfield2。次に、毎秒、タイムスタンプと値の組み合わせを追加したいと思います。

私はmongocライブラリを使用しています。これは超高速であると想定していましたが、これを実行する方法にはmongo_update、一括で実行できないものが必要です。使用する方法はないと思いますmongo_insert_batch

残念ながら、それは非常に遅いです-ひどいパフォーマンス。私はこれを完全に間違ってやっていますか?ひどいことは、大雑把な作業を行うことで600 /秒を取得し、代替データベース(名前の名前付けではない)では27,000/秒を取得することを意味します。

コードはおおよそ次のとおりです。

書き込みの懸念をオフまたはオンに設定しても違いはありません。

0 投票する
1 に答える
925 参照

mongodb - クエリのmongodb c-driver $orderby

sort ($orderby) キーワードを使用して mongo コレクションへのクエリを作成しようとしています。

$orderby のない bson-query オブジェクトは次のとおりです。

それはうまく機能し、5000の結果を返します。

$orderby オブジェクトを追加すると (ここの c-driver の例のようにhttp://api.mongodb.org/c/current/tutorial.html#complex-queries ):

0件の結果があります。

私は何を間違っていますか?

0 投票する
1 に答える
1142 参照

c++ - MongoDBC++ドライバーサーバー側クエリ数

Windows 7 64 SP1-MongoDB 2.2.0-rc2-Boost 1.42-MS VS 2010Ultimate--C++ドライバー

Queryオブジェクトをパラメーターとして受け取る関数があります。

利点:

  1. Queryオブジェクトまたは整形式のBSONObjのいずれかを受け入れることができます。
  2. sort / Hint/etcなどのクエリヘルパーにアクセスできます。

不利益:

  1. シェルの場合と同様に、サーバー側のカウント(結果のバッチのクライアント側のカウントに対して)を実行することはできません。

    すなわち、

    エラーが発生します:

    /li>

したがって、パラメータとしてBSONObjを使用することが提案されました。

利点:

  1. サーバーサイドカウントを実行できます。
  2. クエリに変換できるため、そのヘルパーを使用できます。

不利益:

  1. この関数を使用する人は、直感に反するQueryオブジェクトとしてクエリを渡さないように注意する必要があります。

だから、私の質問は次のとおりです。

QueryクラスのヘルパーメソッドがBSONObjに実装されていないのはなぜですか?または、逆に、サーバー側のcountメソッドをQueryクラスで実装できなかったのはなぜですか?

0 投票する
2 に答える
931 参照

mongodb - MongoDb C++ ドライバーを使用した大規模なコレクションに対するクエリは、シェルとは異なります

Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ ドライバー

「Mongo in Action」に従って、シェルで:

db.numbers.find() の表示:

したがって、C++ で複製する場合:

出力:

シェルで db.numbers.find() を呼び出すと、同じ出力が得られます。{"num" : 0} で始まっていないのはなぜですか? それが存在します:

{"num" : 0} の _id は、{"num" : 199924} の _id の前にあります

そして、「_id」のインデックスが存在します:

クエリ コードを変更して _id による並べ替えを追加すると、次のようになります。

次に、順番に印刷します。

これは、ドキュメントの小さなコレクション (たとえば 200) では発生しません。

質問: C++ クエリが _id でコレクションのインデックスを使用していないように見えるのはなぜですか? または、この明らかな異常を他に説明するものは何ですか (または私の理解の欠如?

0 投票する
2 に答える
982 参照

c++ - MongoDB C++ ドライバ -- Query オブジェクトを参照で渡すと、後でそのソートを使用するとエラーが発生する

Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ ドライバー

私はこの関数を書きました:

void printQuery(DBClientConnection &c, std::string &dc, const Query &qu = BSONObj(), std::string sortby = "" )

このフラグメント:

エラーが発生します:

error C2663: 'mongo::Query::sort' : 2 overloads have no legal conversion for 'this' pointer.

sort (const string &field, int asc=1)適用可能なオーバーロードである必要があります。const Query&これは、メンバー関数を使用することと関係があると思いますsort。しかし、それをQuery&なしに変更するとconst、パラメーターの初期化で次のように発生し= BSONObj()ます。

cannot convert from 'mongo::BSONObj' to 'mongo::Query &'

値で渡すと、正常にコンパイルされます。

エラーのいずれかを回避する方法はありますか (値渡し以外)? ありがとう!

0 投票する
1 に答える
209 参照

c - プライマリ ノードがクラッシュしたときにレプリカ セットに再接続する方法は?

この単純なプログラムでは、プライマリ ノードがクラッシュしたときにレプリカ セットに再接続したいと考えています。しかし、うまくいきません。プライマリ ノードがクラッシュした場合、このプログラムは何も出力せずにすぐに終了し、141 を返します。理由はわかりません。レプリカ セットに再接続する適切な方法は何ですか?