問題タブ [minimongo]
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 - MongoError: $each 用語は補数として $slice (およびオプションで $sort) のみを取ります
プレイリストをmongoDBに保存するラジオ自動化アプリを作成しています。コレクション内の各ドキュメントは次のplaylists
ようになります。
このクエリを使用して、特定の位置に要素の配列を挿入しようとしています:
(insertArray
は挿入する要素の配列です。 insertPos
は、配列を挿入する位置を含む変数です。)
MongoDB で次のエラーが表示されます。MongoError: $each term takes only $slice (and optionally $sort) as complements
Meteor 0.9.2.2 の mongoDB バージョン 2.4.9 を使用しています。つまり、実際には mongoDB をエミュレートする minimongo にクエリを実行しています。
javascript - MongoDBv2.4/minimongoで配列の途中に要素を挿入する方法
最新バージョンのMeteor (新しい Web フレームワーク)を使用して音楽組織アプリを作成しています。プレイリストを保存する最良の方法は、各プレイリストをドキュメントに入れ、プレイリストのアイテムをドキュメント内に配列で配置することだと思います。次のようになります。
私の問題は、その minimongo (Meteor の純粋な JavaScript MongoDB 実装) が MongoDB 2.4 しかサポートしていないことです。つまり、$position
演算子を使用してプレイリスト要素をプレイリストの途中に挿入することはできません。これを回避する最善の方法は何ですか? MongoDB 2.6 より前に、配列の途中にアイテムを挿入する方法が誰もなかったとは信じられません。または、minimongo に簡単にパッチを適用する方法があるかもしれません。
meteor - Meteor Accounts-Entry どのように extraSignupField がデータベースに保存されないようにするのですか?
account-entry
Web アプリのサインイン/サインアップ アクションを処理するためにMeteor のパッケージを使用しています。サインアップフォームにフィールドを追加するためにConfirm Password
、これは私が行ったことです(CoffeeScriptで):
このアプローチの問題は、confirmPassword
フィールドをデータベースにも保存するため、誰かがデータベース > ユーザー コレクションにアクセスすると、フィールド内のすべてのユーザーのパスワードを明確に見ることができるということconfirmPassword
です。これは非常に悪いことです。
この問題を解決する方法はまだわかりません。特定のフィールドをデータベースに保存するかどうかを決定する属性があると思いますが、まだわかりません! (accounts-entry
パッケージのドキュメントは私には十分に詳細ではないようです。私は言わなければなりません:( )
この問題を手伝ってくれませんか?よろしくお願いします!
meteor - MeteorJS Mini Mongo はディスクを使用しますか? それともただの記憶?
mini mongo
MeteorJS (明確にするために、クライアント上) がメモリ (RAM) から、またはディスク (おそらくローカル ストレージ) からデータを取得するかどうかを知りたいです。また、ディスクに書き込むと、オブジェクトが受信されます。パフォーマンス (およびアプリの応答性) が気になります。
meteor - Jasmine が Meteor で minimongo エラーをスローする
私のコードはここにあります(coffeescriptで):
Meteor で実行すると、次のように不平を言います。
Error: TypeError: Cannot read property '_docs' of undefined
at [object Object].LocalCollection.Cursor._getRawObjects (/Users/user/WebstormProjects/mud-craft/.meteor/local/build/programs/server/packages/minimongo.js:512:18)
at [object Object].LocalCollection.Cursor.count (/Users/user/WebstormProjects/mud-craft/.meteor/local/build/programs/server/packages/minimongo.js:260:15)
at Object.<anonymous> (/Users/user/WebstormProjects/mud-craft/tests/jasmine/server/unit/sample_server_test.coffee:6:5)
しかし、製品コードでは問題ありません。
collections - Meteor の collection.insert でサーバー側の挿入を強制する方法
papa-parse を使用してブラウザー側で処理している 40,000 行の単純な CSV ファイルがあります。
Discover Meteor や、Google で見つけた他の 101 件の投稿のテクニックを使用して、それらを 1 つずつコレクションに挿入しようとしています。
40000 はブラウザー側でかなり迅速に挿入されますが、mongo サーバー側を確認すると、387 レコードしかありません。
最終的に (通常は 20 秒程度)、サーバー側への挿入が開始されます。しかし、ブラウザを閉じたり中断したりすると、既に挿入されているレコードは明らかに消えます。
挿入をサーバー側に強制する方法、または少なくとも監視して、ユーザーに成功をいつ通知するかを知るにはどうすればよいですか?
Tracker.flush() を試してみました違いはありません。
Meteor.method でサーバー側の挿入を行いますが、すべてのサーバー側の CSV ライブラリは、クライアント側よりも操作が複雑です (私はほとんどすべてのプログラミングの初心者です :)
ありがとう!
これは私のコードの主要部分です(クライアントフォルダー内):
コンソール出力の最後の数行:
CSV (ランダム生成データ) の最後の数行:
hello テンプレートは明らかに単純なフォームで、ファイルを選択して送信するだけです。クライアント コードは client ディレクトリの下にあります。アプリケーション ルートのファイルで定義された人物。複雑さを避けるため、現時点では CSV は文字列として解析されます。挿入されたレコードは問題ないように見え、名前で取得します。
コンソールの Person.find().count() ブラウザ側では 40000 になります。
このファイルはわずか 1.5 MB で、ランダム データであり、機密ではありません。