問題タブ [monger]
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.
heroku - Heroku の Compojure アプリのどこにモンガー接続を配置しますか?
lein new compojure mongotest
lein 2.0 と Procfileを使用して compojure アプリを作成しましたweb: lein ring server-headless $PORT
。これはうまくいきましたが、今追加すると
git push heroku master
私がHerokuを試すと、最終的に私に与えます
これらの行を の最上位に追加しましたhandler.clj
。接続が で作成されていることがわかる古いドキュメントの一部ですが、生成されたアプリには (私が見つけた) もうmain
存在しないため、古いバージョンの compojure 用である必要があります。main
現在のバージョンではどこで接続を確立する必要がありますか? (または、私のプロファイルが正しくありませんか?)
(はい、MONGOLAB_URI
で定義されていheroku config
ます)
mongodb - Monger で Mongo `forEach` を実行する (または独自の JS を実行する) にはどうすればよいですか?
Monger を使用して Mongo に接続しています。走りたい
Monger のドキュメントに関連する「for each」エントリや、JavaScript を渡して別のコレクションに挿入する方法が見つかりません。どうすればいいですか?
編集この質問は誤解に基づいていました(forEach
サーバーAPIではなくクライアントAPIにあります)。私はそれを削除しますが、できません。
clojure - キー削除!メソッドが PUT のときに呼び出される
liberator と monger を使用して、単純な REST API を構築しようとしています。
私はadvanced rest client
それが機能するかどうかを確認するために使用しています。メソッドが:get
またはの場合:delete
、それは私が望むことを完全に行います (最初にドキュメントが存在するかどうかを確認し、次に適切なアクションを実行します)。ただし、メソッドが の場合、:put
作成された http 201 を吐き出すだけで、リクエストは成功したと思いますが、対応するドキュメントは削除され、更新されません。
:delete! をコメントアウトすると、行、:put! 期待どおりに動作するので、犯人は行だと推測していますが、メソッドを使用しているため、:delete! を想定して:delete!
いるため、その理由はわかりません。:put
手付かずのままでなければなりません。理由はありますか?
mongodb - Clojure <-> Monger <-> MongoDB: セットの読み取りと書き込み
Mongerを使用して MongoDB にデータを保存しています。Clojure セットを保存したいと思います。セットの読み取りと書き込みは機能しますが、リストとして返されます。MongoDB は set データ型を実際にはサポートしていないので、Monger クライアントもサポートしていないのではないかと思いますが、間違っていることを願っています。
Monger に正しい型で保存したセットを返させる方法はありますか?
最小限の Leiningen の例を以下に示します (これは、最も基本的な Monger の例です)。
project.clj を編集して Monger の依存関係を追加します。
REPL を開始します。
セットを挿入して読み戻す - 見つかった値はセットではなくリストであることに注意してください。
明らかに、最後の 2 行のように結果を set に渡すことができますが、特定のキーごとにそれを呼び出す必要はありません。これを透過的に行う方法はありますか?
mongodb - Monger を使用した MongoDB 接続パターン
私はclojureが初めてです。
monger を介して mongodb に接続する際のイディオム/パターンはありますか?
を使用して接続および切断する必要がありますか
それぞれ。毎回 ?
接続プールから接続を再利用する方法はありますか?
clojure - monger がリスト内のすべてのレコードではなく 1 つのレコードのみを更新する理由
エントリのリストを取り、monger を使用して mongo に保存する機能があります。奇妙なのは、指定しない限り、1 つのレコードのみが更新され、残りは無視されることmulti:true
です。モンガーがmongodbへのすべての更新を永続化するためにマルチフラグが必要な理由がわかりません。
mongodb - Monger に Mongoose のような populate を実装する: パフォーマンスに関する考慮事項
Monger をドライバーとして使用して、MongoDB データベースの上に Clojure で Web バックエンドをプログラミングしています。
populate
私は Monger が本当に好きですが、Mongoose ドライバーで非常に便利だと思った機能、つまり、クエリで基本結合をエミュレートできるようにする方法が恋しいです。
それはやや次のようになりました:
最初の質問: Monger や Clojure に似たようなものはありますか?
何も見つからなかったので、答えが「いいえ」であると仮定して、これが私がやろうとしていることです。
次の使用法で呼び出されるClojureユーティリティ関数を作成することを考えてmy-populate
います:
whereは、パス、 、およびmydoc
で他のコレクションへの外部参照を持つ MongoDB ドキュメントを表すマップであり、 を呼び出すと、入力されたドキュメントが返されます (実際には、それを含むチャネルである可能性が高くなります)。(:key1)
(:key2 :key3)
(:key2 :key4)
my-populate
core.async
これを行うための私の戦略は、単純にフィールドごとに 1 つのクエリを作成することです。これは難しいことではありませんが、今はパフォーマンスの考慮事項に関心があります。
この戦略では、パフォーマンスの問題について心配する必要がありますか? それに役立つMongoDBの高度な機能はありますか?
おそらく、Mongoose が舞台裏で何をしているのかを知っている人populate
が、私にいくつかの洞察を与えることができます.