【发布时间】:2021-03-26 01:27:52
【问题描述】:
我目前正在使用以下代码。我基本上使用的是 mongoose 文档中的示例,但我试图让 name 字段是唯一的
在这里我故意创造了两只独特的“小猫”并试图拯救它们
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/test", {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
});
const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", function () {
console.log("Connected to database");
});
const kittySchema = new mongoose.Schema({
name: { type: String, unique: true },
});
kittySchema.methods.speak = function () {
const greeting = this.name
? "Meow name is " + this.name
: "I don't have a name";
console.log(greeting);
};
const Kitten = mongoose.model("Kitten", kittySchema);
const fluffy = new Kitten({ name: "fluffy" });
fluffy.save();
const fluffy2 = new Kitten({ name: "fluffy" });
fluffy2.save();
使用 unique 属性似乎不起作用,因为我不断在数据库中获得重复的条目。我还尝试在我认为已弃用的架构中使用 removedups 键。
【问题讨论】:
-
您的收藏中是否已有重复条目?
-
我在运行程序之前删除了集合,但是是的,集合中最初有重复的条目。我相信如果我将集合名称更改为新名称,它也会拒绝强制执行唯一字段