2017-08-30 14 views
2

私はこのプロジェクトで非常に苦労しています。私はいくつかの分野で時代遅れのチュートリアルに従っています。たとえば、Jqueryのバージョンは一部の機能に全く異なるフォーマットを使用していました。しかし、私は最後の大きな問題に直面していると思いますが、修正が見つからないようです。私のスキーマの変数では、私は_id、ユーザ名、およびパスワードの種類MongoDB - エラー:保存する前にドキュメントに_idが必要です

var UserSchema = new mongoose.Schema({ 
    _id: mongoose.Schema.ObjectId, 
    username: String, 
    password: String 
}); 

を持っているが、私は代わりに私が取得することになっています警告を得るための、私のアプリに新しいユーザーを追加しようとして行くとき[オブジェクトオブジェクト]としてポップアップし、データベースに何も追加されません。そして、このエラーは、私は_idの行をコメントアウトしようとした

"Error: document must have an _id before saving".

CMDモンゴにポップアップし、私は右のメッセージが表示されますが、まだ何も私のデータベースに現れません。

答えて

0

下記のコードを試してみてください。私はあなたもuserIDとして_idを付けたいと思っていました。

var Schema = mongoose.Schema, 
 
ObjectId = Schema.ObjectId; 
 

 
var UserSchema = new Schema({ 
 
    username: String, 
 
    password: String 
 
}); 
 
UserSchema.virtual('userId').get(function(){ 
 
    return this._id; 
 
});

0

_idはMongoDBのにより自動的に追加されます。

あなたが正しく初期化してください、あなたのデータ構造に_idを維持したい場合:

var obj = new UserSchema({ 
    "_id": new ObjectID(), 
    "username": "Bill", 
    "password" : "...." 
}); 
2

そのかなりシンプル:

  1. スキーマで明示的に_idフィールドを宣言した場合は、初期化する必要があります明示的に
  2. スキーマで宣言していない場合、MongoDBはそれを宣言して初期化します。

あなたが行うことはできませんが、それをスキーマに持ちますが、初期化しないことです。あなたが話しているエラーがスローされます

+0

http://complexspiral.com/publications/containing-floats/ –

関連する問題