問題タブ [mongo-c-driver]

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 投票する
3 に答える
713 参照

c - Cドライバーを使用してmongoDbで2つの日付間のデータを取得する

私はこのようなデータを挿入しました

{ "userid" : "manaf", "DataValue" : { "$type" : "00", "$binary" : "sampleBinaryData" }, "timestamp" : 1460718961132, "_id" : { "$oid" : " 5710cd7194e5f57831eea91e"}、"__v":0}

提供されたデータの b/w タイムスタンプ値を取得する必要があります。

私はすでにmongoDbクライアントコンソールで以下のコマンドを使用してこれを行っています。

db.sampleCollection.find({"timestamp": {"$gte":1460703944149, "$lt":1460703944683 },"userid": "manaf"})

しかし、私のCプログラムではこのように使用できません。

これは私のクライアントプログラムです

私はこのようなエラーが発生しました

このプログラムの実際の問題は何ですか?

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

c - Mongo: JSON から BSON への変換中にエラーが発生しました

Mongo C ドライバーを使用して、次の MongoDB JSON コマンドを有効な BSON に変換しようとしています。

私はそれを使用して作成しようとしました:

しかし、それは間違っています。

コンパイルすると、次のようになります。

/current/set_fav.c: 関数 'main' 内:
/current/set_fav.c:102: 警告: 初期化によりポインター ターゲット型から修飾子が破棄されます
/current/set_fav.c:168:122: エラー: マクロ "BSON_APPEND_UTF8" が 9 を通過しました/current/set_fav.c:168
: エラー: 'BSON_APPEND_UTF8' 宣言されていません (この関数で最初に使用されます)
/current/set_fav.c:168: エラー: (宣言されていない識別子はそれぞれ一度だけ報告されます /current/ set_fav.c:168: エラー: 各関数に表示されます。)

参考:コードの上位に設定folderPositionRawする価値があります。3_root


もう少し情報を追加するには: 元々、Mongo の構文が間違っていましたが、C は満足していました。私は以下を使用していました:

DB チームから正しい Mongo 構文 (投稿の上部) を提供してもらいましたが、それを C BSON に構造化しようとして、何か間違ったことをしました。


いくつかの進歩:

コードを更新したところ、クラッシュしなくなりましたが、これは良い兆候ですが、Mongo に送信される出力 JSON が完全に正しく構造化されていません。問題は、mongo $inc コマンドで送信される値 1 が int 1 ではなくスカラー 1 として送信されていることだと思います。更新を実行します (エラーは返されません)。引用符を削除すると、アプリがクラッシュします。

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

c# - C# MongoDB ドライバーで動的 Linq 述語が「サポートされていないフィルター」エラーをスローする

Linq を使用して、式の動的リストを MongoDB C# ドライバー クエリに渡そうとしています...この方法は、たとえば、ORM に対する通常の Linq クエリで機能しますが、MongoDB クエリに適用するとエラーになります。 ... (参考: LinqKit の PredicateBuilder も使用しています)

GetSessionMsgs() メソッドは、データ サービス クラスで定義されています ...

LinqKit PredicateBuilder を使用して、提供された式を 1 つの「AND」式に追加するだけです ...そして、Where() 句で、Linq クエリと同じように適用します。さらに、Select() 句を使用して、結果を定義済みのデータ転送オブジェクト (DTO) に射影し、DISTINCT DTO のみが返されます。

この手法は通常、Telerik ORM Context Entity コレクションに対して実行するときに機能します...しかし、Mongo ドキュメント コレクションに対してこれを実行すると、次のエラーが発生します...

サポートされていないフィルター: Invoke(e => (e.Region.ToLower() == "central"), {document})

確かに、私がはっきりしないカバーの下で何かが起こっています。C# Driver for MongoDB のドキュメントで、次の注を見つけました ...

「スカラーを射影するとき、MongoDB は集約パイプラインからの出力をドキュメントにする必要があるため、ドライバーは生成されたフィールド名を持つドキュメントにスカラーをラップします」

しかし、正直なところ、それが何を意味するのか、それがこの問題に関連しているかどうかはわかりません。ただし、エラーに「{document}」が表示されることは、関連性があることを示唆しています。

ただし、追加の考えや洞察は大歓迎です。これで2日間の大半が立ち往生しています...

私はこの投稿を見つけましたが、これまでのところ、受け入れられた解決策が私が行ったものとどのように大きく異なるかはわかりません.

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

mongodb - ネイティブ ノード mongodb ドライバーは正しいドキュメントを返しますが、Mongo-C によって作成されたときに空の Number 配列を返します

下部の編集を参照してください。これは Mongo-C やネイティブの node-mongodb の問題であり、Mongoose の問題ではないようです。

MongoDB に保存されている地震データのリアルタイム コレクションがあります。データと呼ばれる 1 つのキーは、サンプルの int 配列です。Mongoose を介してこのコレクションをクエリすると、すべて正常に見えますが、データ キーは空の配列として返されますが、長さ nsamp(サンプル数) の Number 配列として返されるはずです。

Mongoose スキーマを次のように定義しました。

mongo 経由で次のレコードを照会する

戻る

しかし、Mongoose で同じクエリを実行すると、データ配列は空になります。

次のコンソール出力が得られます。

スキーマを正しく定義していますか?

編集1:スクリプトを次のように変更します:

収量:

編集 2: 上記を試した後、これはネイティブの mongodb ドライバーである可能性があります。スクリプトを次のように変更しました。

編集1と同じ結果が得られました。

編集 3: MongoDb コレクションは、Mongo-CI を使用する C プログラムを介して作成されます。1) mongo-c ルーチン (オリジナル)、2) node-mongodb、および 3) Mongo Console を介して 3 つの同様のドキュメントが作成されます。find (id とキー名を除く) を実行すると、mongo コンソールに似たように表示されるため、誰かが本当に必要でない限り、出力を追加する必要はありません。ノードスクリプトを次のように変更しました。

どちらが得られますか:

mongo gem を使用して Ruby スクリプトを作成し、3 つの配列すべてを読み取ることができました。

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

c# - Mongo C# ドライバー - GeoJson ポリゴンから GeoJsonLinearRingCoordinates

Mongo C# ドライバーは初めてで、C# でインターセクト クエリを作成しようとしています。関数は Javascript で動作していますが、Mongo ドライバーの一部のクラスで苦労しています。

現時点では、GeoJson を正常にプルしていますが、インターセクト クエリに渡すオブジェクトを作成するときに、正しいパラメーターがないようです。現時点では、次の投稿を使用してフィルターをモデル化しています: 既知のポリゴンを完全に含む MongoDB からポリゴンを読み込む

geojson 文字列を「座標」のリストに変換して、GeoJsonLinearRingCoordinates オブジェクトを作成するにはどうすればよいですか?

使用しようとしているポリゴンの例を次に示します (オハイオ州キャロル郡)。

Mongo シェルで使用している JavaScript クエリは次のとおりです。

0 投票する
0 に答える
222 参照

mongodb - MongoDB C ドライバー オブジェクトの配列でオブジェクト フィールドの値を見つける方法

私はCドライバーで次のようなものへの道を見つけようとしています: https://docs.mongodb.com/manual/reference/operator/query/elemMatch/#op._S_elemMatch

このスレッドで回答されているように:
Mongoで配列内のオブジェクトのフィールドを照会しますか?

私はこのjsonを持っていて、sessions.id == 1234556の値かどうかを確認したい:

新しい C ドライバーでどのように行うことができますか?

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

mongodb - MongoDB CDriver インデックス N の配列オブジェクトを更新する方法は?

私は次のようなドキュメントを持っています:

id == 133333 ( [1] にある) のセッション要素を取得し、新しい値で更新して新しい要素を追加できるようにしたいので、次のようになります。

ドキュメントは、C ドライバーに関しては非常に理解しにくいものです。誰かがそれを行うための最良の方法を示してもらえますか?

更新
cdriverバージョン1.4(最新)で試してみましたが、更新に失敗しました(trueを返す)奇妙なことが起こっていますが、ドキュメントに更新はありません

奇妙なことがたくさん起こっているのを見ると、更新が本当に成功したかどうかを確認するにはどうすればよいですか?

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

mongo-c-driver - Using MongoDb c driver to extract array from bson

I have documents in a mongo collection which look like: { "f" : [ 283, 180, 284 ], "l":["1","29"] } I am using the mongoDB c driver to fetch these documents and perform some operations on these> I would like to restore element "f" back as an array of integers and the element "l" back as an two multidimensional char array.

I am not able to figure out how I can extract "f" to int* and "l" to char**. I tried to type cast the pointer (data) to different types but the values are not proper. How do I go about it?