【问题标题】:Set unique key in mongoose在猫鼬中设置唯一键
【发布时间】: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 键。

【问题讨论】:

  • 您的收藏中是否已有重复条目?
  • 我在运行程序之前删除了集合,但是是的,集合中最初有重复的条目。我相信如果我将集合名称更改为新名称,它也会拒绝强制执行唯一字段

标签: node.js mongodb mongoose


【解决方案1】:

此属性 unique 不用于唯一保存数据。它用于将应用于字段的唯一索引。

您可以在此处查看文档。

https://joshtronic.com/2018/06/07/unique-indexes-with-mongodb-and-mongoose/

【讨论】:

    猜你喜欢
    • 2014-04-01
    • 2014-05-01
    • 2015-02-24
    • 2017-02-26
    • 2015-08-08
    • 2014-05-24
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    相关资源
    最近更新 更多