タグ付けされた質問 「mongoose」

Mongooseは、JavaScriptで記述され、非同期環境で動作するように設計された、MongoDBオブジェクトモデリングツール、つまりODM(Object Document Mapper)です。

18
Mongooseスキーマにcreated_atおよびupdated_atフィールドを追加
new MyModel()が呼び出されるたびにそれらを渡す必要なしに、created_atおよびupdated_atフィールドをマングーススキーマに追加する方法はありますか? created_atフィールドは日付であり、ドキュメントが作成されたときにのみ追加されます。ドキュメントでsave()が呼び出されるたびに、updated_atフィールドは新しい日付で更新されます。 私は自分のスキーマでこれを試しましたが、わざわざ追加しない限り、フィールドは表示されません。 var ItemSchema = new Schema({ name : { type: String, required: true, trim: true } , created_at : { type: Date, required: true, default: Date.now } });

15
mongoError:トポロジが破壊されました
RestifyとMongooseを使用してnode.jsに組み込まれたRESTサービスと、約30.000の通常サイズのドキュメントを含むコレクションを備えたmongoDBがあります。ノードサービスをpmxとpm2で実行しています。 昨日、突然、ノードは「MongoError:Topology was destroyed」というメッセージでエラーを回避し始め、それ以上は何も起こりませんでした。これが何を意味し、何がこれを引き起こしたのかはわかりません。これをgoogle-searchしても、それほど多くは見つかりません。だから私はここで尋ねようと思いました。 本日ノードサービスを再起動した後、エラーの発生は停止しました。これらの1つも本番環境で実行されており、そこで実行されているセットアップのかなり重要な部分でいつでも発生する可能性があることを怖がっています... 上記のパッケージの次のバージョンを使用しています。 マングース:4.0.3 再確認:3.0.3 ノード:0.10.25


7
MongoDBとMongooseの違い
mongodbデータベースを使用したかったのですが、独自のWebサイトとインストール方法の2つの異なるデータベース、mongodbとmongooseがあることに気付きました。だから私は自分にこの質問を尋ねてきました:「どちらを使用しますか?」 それで、この質問に答えるために、これらの2つの違いは何ですか?そして、もし可能なら賛否両論?彼らは本当に私にとてもよく似ているからです。

17
マングースで並べ替える方法は?
ソート修飾子のドキュメントが見つかりません。唯一の洞察は単体テストです: spec.lib.query.js#L12 writer.limit(5).sort(['test', 1]).group('name') しかし、それは私にはうまくいきません: Post.find().sort(['updatedAt', 1]);

7
完了したら、マングースの接続を適切に閉じます
継続的に実行することを意図していないスクリプトでマングースを使用していますが、非常に単純な問題のように見えますが、答えを見つけることができません。mongodbにリクエストを送信する任意のmongoose関数を呼び出したら、nodejsインスタンスは停止せず、Ctrl + cまたはProgram.exit()などを使用して手動で強制終了する必要があります。 コードはおおよそ次のようになります。 var mongoose = require('mongoose'); // if my program ends after this line, it shuts down as expected, my guess is that the connection is not really done here but only on the first real request ? mongoose.connect('mongodb://localhost:27017/somedb'); // define some models // if I include this …

6
MongoDB / Mongooseは特定の日付でクエリを実行していますか?
特定の日付を照会することは可能ですか? mongoクックブックで、日付範囲のクエリを実行することができることがわかりました 、次のような: db.posts.find({"created_on": {"$gte": start, "$lt": end}}) しかし、それは特定の日付で可能ですか?これは動作しません: db.posts.find({"created_on": new Date(2012, 7, 14) })

6
Mongooseで既存のコレクションにアクセスする方法は?
questionデータベースに300のオブジェクトの大規模なコレクションがありますtest。MongoDBのインタラクティブシェルを介して、このコレクションを簡単に操作できます。しかし、express.jsアプリケーションでMongooseを介してコレクションを取得しようとすると、空の配列が取得されます。 私の質問は、エクスプレスで再作成する代わりに、この既存のデータセットにアクセスするにはどうすればよいですか?ここにいくつかのコードがあります: var mongoose = require('mongoose'); var Schema = mongoose.Schema; mongoose.connect('mongodb://localhost/test'); mongoose.model('question', new Schema({ url: String, text: String, id: Number })); var questions = mongoose.model('question'); questions.find({}, function(err, data) { console.log(err, data, data.length); }); これは出力します: null [] 0

4
mongooseでObjectIdを生成するにはどうすればよいですか?
ObjectIdMongooseでMongoDBを生成したいのですが。ObjectIdMongooseからコンストラクタにアクセスする方法はありますか? この質問は、ゼロから新しいもの ObjectIdを生成することについてです。生成されたIDは、まったく新しい一意のIDです。 別の質問はObjectId、既存の文字列表現からを作成することについて尋ねます。この場合、IDの文字列表現はすでに存在しており、普遍的に一意である場合とそうでない場合があります。また、IDをに解析していObjectIdます。

3
量産コードでのマングースインデックス
and /のMongoose ドキュメントによるMongooseJSと:MongoDBNode.js アプリケーションが起動すると、MongooseはensureIndexスキーマで定義された各インデックスを自動的に呼び出します。開発には適していますが、インデックスの作成はパフォーマンスに大きな影響を与える可能性があるため、本動作ではこの動作を無効にすることをお勧めします。autoIndexスキーマのオプションをfalseに設定して、動作を無効にします。 これは、Mongooseを最適化するためにデプロイする前にmongooseから自動インデックス作成を削除して、Mongooseにアプリケーション起動時にすべてのインデックスを移動およびチャーンするように指示することを指示しているようです。これは理にかなっているようです。 量産コードでインデックスを処理する適切な方法は何ですか?たぶん、外部スクリプトはインデックスを生成する必要がありますか?またはensureIndex、単一のアプリケーションがコレクションへの唯一のリーダー/ライターである場合、DBの書き込みが発生するたびにインデックスを継続するため、不要な場合がありますか? 編集:補足として、MongoDBはインデックス作成の方法に関する優れたドキュメントを提供していますが、明示的なインデックス作成ディレクティブを実行する理由や時期については提供していません。インデックスは、既存のインデックスを持つコレクションでライターアプリケーションによって自動的に最新に保つ必要があるように思えます。これは、実際には1回限りのもの(新しいインデックスが適用されるときに行われる)です。この場合、Mongoose は、通常のサーバー再起動では何もしません。ensureIndexautoIndex

5
単一のnode.jsプロジェクト内のMongooseおよび複数のデータベース
サブプロジェクトを含むNode.jsプロジェクトを実行しています。1つのサブプロジェクトには1つのMongodbデータベースがあり、Mongooseはdbのラップとクエリに使用されます。しかし問題は Mongooseでは、モデルが1つの接続で構築されるため、単一のMongooseインスタンスで複数のデータベースを使用することはできません。 複数のmongooseインスタンスを使用する場合、Node.jsはにキャッシュシステムを備えているため、複数のモジュールインスタンスを許可しませんrequire()。Node.jsでモジュールキャッシングを無効にすることは知っていますが、Mongooseでのみ必要であるため、これは良い解決策ではないと思います。 私が使用しようとしたcreateConnection()とopenSet()マングースで、それは解決策ではありませんでした。 私は、マングースインスタンス(http://blog.imaginea.com/deep-copy-in-javascript/)をディープコピーして、新しいマングースインスタンスをサブプロジェクトに渡そうとしましたが、スローしましたRangeError: Maximum call stack size exceeded。 私はとにかくこの問題のためにマングースまたは複数の回避策で複数のデータベースを使用することはありますか?マングースはとても簡単で速いと思うので。または推奨事項として他のモジュール?

6
マングースサブドキュメントとネストされたスキーマ
サブドキュメントを使用することと、メインスキーマのより深い層を使用することの長所と短所に興味があります。 var subDoc = new Schema({ name: String }); var mainDoc = new Schema({ names: [subDoc] }); または var mainDoc = new Schema({ names: [{ name: String }] }); 私は現在、あらゆる場所でサブドキュメントを使用していますが、主にパフォーマンスやクエリの問題について知りたいと思っています。

20
パス "_id"で値XXXのMongooseエラーCast to ObjectIdが失敗したのは何ですか?
にリクエストを送信する/customers/41224d776a326fb40f000001と、ドキュメントが_id 41224d776a326fb40f000001存在しない場合は、docがnull返されます404。 Controller.prototype.show = function(id, res) { this.model.findById(id, function(err, doc) { if (err) { throw err; } if (!doc) { res.send(404); } return res.send(doc); }); }; ただし、_idMongooseが「フォーマット」として想定しているものと一致しない場合(おそらく)GET /customers/foo、奇妙なエラーが返されます。 CastError:パス "_id"の値 "foo"のObjectIdへのキャストに失敗しました。 それで、このエラーは何ですか?
122 mongodb  mongoose 

7
マングース、検索で特定のフィールドを選択
特定のフィールドのみを選択しようとしています exports.someValue = function(req, res, next) { //query with mongoose var query = dbSchemas.SomeValue.find({}).select('name'); query.exec(function (err, someValue) { if (err) return next(err); res.send(someValue); }); }; しかし、私のjson応答では_idも受け取っています。私のドキュメントスキーマには、_idとnameの2つのフィールドしかありません。 [{"_id":70672,"name":"SOME VALUE 1"},{"_id":71327,"name":"SOME VALUE 2"}] なぜ???

8
Mongoose —コレクション名を強制する
mongooseを使用してデータベースとそのコレクションを作成しようとしています。私のコードは: var mongoose = require('mongoose'); var db = mongoose.connect('mongodb://localhost/testdb'); var Schema = mongoose.Schema; var UserInfo = new Schema({ username : String, password : String }); mongoose.model('UserInfo', UserInfo); var user = db.model('UserInfo'); var admin = new user(); admin.username = "sss"; admin.password = "ee"; admin.save(); このコードを実行すると、mongooseはuserinfoではなくUserInfoという名前のコレクションを作成しました。マングースでコレクション名を強制する方法は?
120 mongodb  mongoose 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.