javascript - 复合索引不起作用?

标签 javascript node.js mongodb mongoose

我正在尝试使用 mongoose 创建复合索引:

var ProjectSchema = new mongoose.Schema({
    name: {type: String, required: true},
    user: {type: mongoose.Schema.ObjectId, ref: 'User', required: true}
});

ProjectSchema.index({user: 1, name: 1}, {unique: true});

之后,我将旧数据库删除到 mongo

db.dropDatabase()

但我仍然可以插入具有相同名称和用户 ID 的多个文档。为什么?

它创建的索引在 mongo 中显示为

> db.projects.getIndexes();
[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "mydatabase.projects",
        "name" : "_id_"
    }
]

最佳答案

这是纯 mongo 控制台功能,它可以工作, 点击Here 了解更多详情。这在 mongoose 的 API 中没有描述。 我认为这可能是可行的。

db.collection.ensureIndex( { a: 1 }, { unique: true, dropDups: true } )

关于javascript - 复合索引不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368814/

相关文章:

javascript - 将分钟转换为秒并尝试每秒向上或向下计数

javascript - 如何绘制一个低不透明度的 rgba 圆,其中心恰好位于给定的 X 和 Y 尺寸

node.js - 在 JWT 配置文件中生成并使用 secret

javascript - 在 JavaScript(NodeJS)中从 MongoDB ObjectId 获取唯一的整数?

javascript - 聊天应用程序如何为特定聊天生成 id?

javascript - 如何更新 Mongoose 中的数组元素 - MongoDB

javascript - 如何在 Hackerrank 和 Hackerearth 中使用 Javascript?

node.js - 如何测试通过模拟从 express 调用的路由处理程序

node.js - npm run build on Windows 10 导致此应用程序无法在您的 PC 上运行

javascript - 如何动态设置 AnyChart 烛台颜色?