我正在尝试使用mongoose运行这个简单的嵌入式文档:
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);
});
我第二次运行此代码后出现此错误:
{
[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
}
我做错了什么?
答案 0 :(得分:9)
我不确定你在这里做错了什么,但发生的事情是:
为字段'pages'创建索引,因此它不允许重复。要检查这一点,您可以在mongo shell doalbums.albums.getIndexes()
中提供此命令(我认为您的数据库名称是 doalbums 和集合名称是专辑)这将列出“专辑”中的所有索引。
然后使用db.albums.dropIndex()
删除不需要的索引。这将允许重复。
您可以参考http://docs.mongodb.org/manual/administration/indexes/