問題タブ [mongojs]
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.
javascript - コールバックでmongodb接続を終了する
私はmongojsとnodejsを学んでいるので、非同期プログラミングに慣れようとしています。私のプログラムがすべきことは、ファイル(「リスト」)から入力を取得し、各行を読み取り、データをファイルに書き込み、データをデータベースに書き込む解析関数にその行を渡すことです。
ここに私のindex.jsがあります:
read_list.js:
そして最後に parse.js:
それが理にかなっていて読みやすいことを願っています。ここでの私の最初の投稿です。
プログラムが終了しないことを除いて、すべてが期待どおりに実行されます(ctrl + cで実行する必要があります)。コールバックで接続を閉じることができるようにプログラムを変更するにはどうすればよいですか、またはポイントを逃して間違った方法で行っていますか?
javascript - Mongojs の印刷と console.log が機能しない
次のコマンドを実行していて、出力を out.log ファイルに表示したいのですが、何も出力されません。
これらは私のtest.jsの内容です
エラーが発生します:呼び出しに失敗しました:JSエラー:コンソールが定義されていません。そのため、console.log を削除しました。ただし、印刷機能を使用しても印刷されません。ありがとう。
node.js - NodeJS - Mongoose は MongoJS よりも高速ですか?
NodeJS で実行され、情報のデータベースとして MongoDB を使用するアプリケーションがあります。
現在、「公式のmongodb APIを可能な限りエミュレートする」ことを目的としたMongoJSモジュールを介してMongoDBに接続しています。
アプリケーションは約 20,000 個のオブジェクトを取得し、それぞれを MongoDB に保存します。まず、データベースを検索してオブジェクトが既に存在するかどうかを確認し、次に既存のエントリを更新するか、新しいエントリを追加します。
これは非常に遅くなる可能性があります。それが同期/シングルストリームであるためかどうかはわかりませんMongoJS
(そうである場合でも-わかりません!)、またはDBに多くのエントリを書き込むという現実ですが、45分〜1時間かかりますこれをすべて行い、明らかにこれを可能な限り削減したいと思います。
これには、 Mongooseの方が優れた/高速なオプションになるかどうか疑問に思っています。どうやら非同期のようですが、それがパフォーマンスにまったく影響を与えるかどうかはわかりません。
javascript - MongoDB: 変数の内容に基づく配列への $push
次のように、 (を使用して)ビルドで$push
レコードにアイテムを追加しようとしています:MongoDB
Node
MongoJS
関数が「foo: bar」の代わりに「param: bar」をレコードにプッシュしていることを除いて、これは機能します (これが何を指すかについては上記のコメントを参照してください)。
私は試してみまし$push: {eval(param):value}
たが、これは暗闇の中でのショットでしたが、とにかくうまくいきませんでした. これを実現する最善の方法は何ですか?
javascript - Coffeescript クラスの mongo ドキュメントの検索または作成
そこから新しいオブジェクトを構築するときに、IDが渡されたかどうかを確認するcoffeescriptクラスを作成しようとしています。その場合は、一致するドキュメントを見つけて、そこからオブジェクトを作成してみてください。ID が渡されない場合は、新しい ID を生成して新しいドキュメントを作成します。私はmongojs
自分のmongodbに接続するために使用しています。ただし、TestObject クラスから新しいオブジェクトを作成すると、コレクション名は文字列である必要があるというエラーがスローされます。@collection をそのクラスの文字列として設定するので、@collection プロパティとその未定義を console.log に記録します。ここで何が起こっているのか、どうすればこれを機能させることができますか?
編集
私のコードを読み直すと、MongoObject でコンストラクターと @collection が定義されていないという問題があることは明らかです。これを行うためのより良いアプローチはありますか? メソッドを作成しsetupDB
、スーパー コールの後に MongoObject を拡張する各クラスのコンストラクタでそれを呼び出すことはできましたが、期待していたものではありませんでした。
編集 2
コードを修正しました。constructor
ただし、未定義のエラーが発生しています。コンパイルされた JavaScript を見るとconstructor;
、MongoObject コードの先頭を指しています。var constructor;
奇妙なことに、通常は発生するはずのcoffeescript が配置されませんでした。参考までに、翻訳されたJavaScriptを投稿しました
コーヒースクリプト
Javascript
編集 3
コメントごとにコードを更新しました。その発言@constructor.collection
は未定義です
セーブのコールバック関数にあるためだと思います。一歩前進、二歩後退。
改訂されたコード
mongodb - Array フィールドの $type が false を返す
"testfields": [{ "test_id": 1, "test_name": "xxxx" }] }