問題タブ [gmongo]
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.
mongodb - レプリカ セットがローカル IP アドレスで相互に接続する場合、リモート MongoDB レプリカ セットに接続します。
ローカル ネットワーク インターフェイス (つまり、192.168.1.x) に mongo レプリカ セットをセットアップしました。レプリカ セットのメンバーだけが、このインターフェイスについて認識しています。インスタンスは、ネットワーク内 (10.xxx) からアドレス可能な外部インターフェイスにもあります。Java ドライバー [2.10.1] ( gMongo wrapper経由) のみを使用して「マスター」に接続しようとすると、アプリが他のレプリカ ノードを特定できないため、接続が確立されないという問題が発生します。これは、サーバー リストにすべての外部インターフェイスを指定した場合でも発生します。
また、自分のマシンからレプリカ セットへの SSH トンネルをセットアップできる必要もあります。繰り返しになりますが、レプリカ セットが提供するホスト名と IP アドレスが自分には当てはまらないため、同じ問題に遭遇します。
レプリカがローカル IP アドレスのみでお互いを認識している場合、レプリカ セットに接続するにはどうすればよいですか?
コードと結果のエラーの例を次に示します。以下の例では、localhost からリモート サーバーへのトンネルがセットアップされていると想定しています。
結果は次のようになります。
私が提供するサーバーのリストではなく、サーバーのローカル構成に基づいて解決しようとしている理由がわかりません。
grails - gmongoを使用してmongoにドキュメントを挿入できません
Groovyにドキュメントを挿入する次のコードがありますが、grailsアプリケーションでこのエラーが発生し続けます
メソッドの署名なし: com.mongodb.DBApiLayer$MyCollection.insert() は引数の型に適用できます: (java.util.LinkedHashMap) 値: [[city:ACMAR, loc:[-86.51557, 33.584133], ...] ] 可能な解決策: insert([Lcom.mongodb.DBObject;), insert(java.util.List), insert([Lcom.mongodb.DBObject;, com.mongodb.WriteConcern), insert(com.mongodb.DBObject, com .mongodb.WriteConcern)、挿入 (com.mongodb.WriteConcern、[Lcom.mongodb.DBObject;)、挿入 (java.util.List、com.mongodb.WriteConcern)
このコードは、gmongo の例から取られています。エラーが発生する理由はありますか?
更新
@dmahapatro のアプローチを試した後、Grails アプリで以下のエラーが発生します。
grails - gmongo 0.9.1 の集約
Grails 1.3.7 を搭載したアプリにいくつかの単純な集計を実装する必要があります。1.0.0.RC3 の mongodb-plugin には、集約関数が実装されていない gmongo 0.9.1 が同梱されています。
どうすれば問題を解決できますか? java-mongo API を直接呼び出すためのフックはありますか、それとも集約を可能にする他のプラグイン リリースがあるのでしょうか?
ティア
grails - GORM / GMongo はマップを受け入れるためにコレクションをラップしますか? (Grails/GMongo の内部。)
Grails Mongo ドメイン オブジェクトを使用していますが、次の 2 つの方法でコレクションにアクセスすると、動作が大きく異なることに気付きました。
c1
: コレクション名はコンパイル時に認識されます:
def c1 = MyDomainClass.collection
c2
: コレクション名は実行時にのみ認識されます
def c2 = AnyDomainClass.collection.DB.getCollection(collectionName)
c1
c2
同じクラスですが、動作が異なります。
と の両方c1
にc2
クラスcom.mongodb.DBApiLayer$MyCollection
がありますが、動作が異なります。
具体的には、c1
マップを GMongo メソッドに直接渡すなどの「フレンドリーな」対話をサポートします。
次のようなパラメーターでc2
のみ機能します。DBObject
私は #1 の構文を好みます。コンパイル時にコレクションがわからない場合でも、その構文をオブジェクトで使用できるようにしたいと考えています。言い換えれば、コレクションに動的にアクセスできるようにしたいのですが (これは #2 で実行できます)、ただし #1 の「わかりやすい」構文を使用します。
私の質問は次のとおりです。
c1
とはどうc2
違いますか?c1
コンパイル時にコレクションが不明な場合のように動作するコレクションをインスタンス化するにはどうすればよいですか?- map から DBObject への変換をサポートするためにオブジェクトがラップされているのは、Grails/GORM/GMongo スタックのどの層ですか? また、これはどのように行われますか?
mongodb - MongoDB での距離の計算は正確ではありません
MongoDBデータベースで空間クエリを作成しようとしています (geoNear.
計算された距離がまったく正確でないことを除いて、それは機能します。だから、ここに私が持っているものがあります:
私はインデックスを持っています:
そして、ここに私の質問があります:
結果は次のとおりです。
}
ご覧のとおり、計算された距離 (km で計算するために地球の半径を掛けたもの) は 1.1119514223177513 km です。
ウェブサイトhttp://www.lexilogos.com/calcul_distances.htmで距離を計算すると、計算された距離は 0.7312508492264875 km です。
Google マップを使用すると、距離も 0.7312508492264875 km です。
だから、問題は:私が間違っているのは何ですか?
mongodb - Gmongo 日付クエリ
mongo コレクションが与えられた場合 (説明のためにいくつかのフィールドのみに取り除かれています):
requestTime を照会したい。理想的には、2 つのクエリが必要です。1 つは正確な requestTime 用で、もう 1 つは requestTime の範囲 (ある日時以上で他の日時以下) 用です。私はこれまでに次のことを試しましたが、どれもうまくいかないようです:
誰か提案はありますか?これについての助けは大歓迎です。
ある程度の進歩はありましたが、まだ完全には機能していません。レコードを取得して日付を引き出し、この日付をクエリで使用して機能させることができます。ただし、自分で日付を作成しようとすると機能しません。
出力:
mongodb - grails プロジェクトで mongdb プラグインと gmongo を一緒に使用できますか?
最近、私は grails プロジェクトに取り組んでおり、mysql の他に mongodb を nosql データベースとして使用するつもりです。
mongodb プラグインを追加し、ドメインでテストを行ったところ、うまく機能しました (表示/編集/保存...):
gmongo プラグインを使用して別の方法を試してください。これは、mongodb の低レベル API を使用する場合 (またはたとえば mapReduce を使用する場合) に役立ちます。
簡単なクエリ find() でテストしてみてください。これもうまくいきます
今、私は2つの方法を結合したいのですが、ここにエラーがあります:
実際の直し方がわからない!
mongodb - ファイナライザーを使用した gmongo MapReducer
gmongo 使用時の Finalizer の設定方法がわかりません。私の「削減」には、「ファイナライズ」で使用したい配列が含まれています
MapとReduceは以下の通り
以下のように mapreduce を呼び出すと、エラーが発生します - クエリが大きすぎます
これだけが私のために働いていますが、ファイナライズを設定する方法がわかりません