问题唯一字段?
我正在努力在Mongodb中保持独特的字段,但它不工作。问题唯一字段?
这里我的代码:
var RepositorySchema = new mongoose.Schema({
folderName: { type: String, unique: true},
tag: String ,
ismainFolder: { type: Boolean },
innerFiles: [{ filename: String, isFolder: { type: Boolean }, parentfolderId: { type: Schema.ObjectId, ref: 'repository' }, filelocation: { type: String } }],
innerFolder: [{ foldername: String, ismainFolder: { type: Boolean }, parentfolderId: { type: Schema.ObjectId, ref: 'repository' } }],
});
module.exports = mongoose.model('repository', RepositorySchema);
文件夹名称不保持唯一值,请帮我
尝试重新创建你的集合中的所有指标。在你的终端运行以下命令:
> mongo
> use <your_dv>
> db.repository.reIndex()
REINDEX命令滴在收集所有索引并重新创建它们。对于具有大量数据和/或大量索引的集合,此操作可能会很昂贵。
如果已经存在重复项,则可能不起作用,这可能是原因。 –
@NeilLunn是的,这可能是一个问题,但有时猫鼬不会在现有收藏中应用唯一索引,即使没有重复。索引娱乐可以提供帮助。 – alexmac
从我的角度来看,“可以”是基于看到相同的东西被问了几百次。 99%这些情况下,索引不存在,因为创建因重复而失败。无论如何,默认情况下,应用程序启动时“重新索引”。所以你实际上并没有告诉OP这里有什么好处。现在明白了? –
你可以添加一些记录,你从数据库中检索,并且具有相同的'folderName'值,你的问题? – robertklep
收藏中是否有数据?机会实际上并非全是“独一无二的”,并且由于这个原因创建索引失败。使用'mongoose.set('debug',true)打开调试'并查看应用程序启动时的日志。尝试创建索引时应该有错误。 –