3

私はマングースを使用してこの単純な埋め込みドキュメントを実行しようとしています:

var mongoose = require('mongoose');
var PageSchema = new mongoose.Schema({
    url:String
});
var AlbumSchema = new mongoose.Schema({
    pages:[ PageSchema ]
});

mongoose.model('Album', AlbumSchema);
var Album = mongoose.model('Album');
var album = new Album({pages:[{url:"1"}]});
album.save(function(err, a) {
    console.log(err);
});

このコードを2回実行すると、次のエラーが発生します。

{ 
    [MongoError: E11000 duplicate key error index: doalbums.albums.$pages.id_1  dup key: { : null }]
    name: 'MongoError',
    err: 'E11000 duplicate key error index: doalbums.albums.$pages.id_1  dup key: { : null }',
    code: 11000,
    n: 0,
    connectionId: 161,
    ok: 1 
}

私は何が間違っているのですか?

4

1 に答える 1

9

ここで何が間違っているのかわかりませんが、何が起こっているのかは次のとおりです:フィールド'pages'のインデックスが作成されるため、重複は許可されません。これを確認するには、mongoシェルでこのコマンドを指定しdoalbums.albums.getIndexes()ます(DB名だと思います)はdoalbumsで、コレクション名はalbumsです)これにより、「albums」内のすべてのインデックスが一覧表示されます。次に、を使用して、不要なインデックスを削除します db.albums.dropIndex()。これにより、複製が可能になります。http://docs.mongodb.org/manual/administration/indexes/を参照できます

于 2012-11-20T10:48:50.307 に答える