相关疑难解决方法(0)

猫鼬独特的索引不起作用!

我试图让MongoDB根据其索引检测重复值.我认为这在MongoDB中是可能的,但是通过Mongoose包装器似乎已经破坏了.对于这样的事情:

User = new Schema ({
  email: {type: String, index: {unique: true, dropDups: true}}
})
Run Code Online (Sandbox Code Playgroud)

我可以使用相同的电子邮件保存2个用户.该死.

这里也表达了同样的问题:https://github.com/LearnBoost/mongoose/issues/56,但那个线程已经老了,无处可去.

现在,我手动调用数据库来查找用户.由于"电子邮件"已编入索引,因此该电话费用并不昂贵.但让它本地处理仍然是件好事.

有人有解决方案吗?

mongoose mongodb node.js

75
推荐指数
11
解决办法
5万
查看次数

防止猫鼬中的重复记录

我对 MongoDb / Mongoose 相当陌生,更习惯于 SQL Server 或 Oracle。

我有一个相当简单的事件架构。

EventSchema.add({
  pkey: { type: String, unique: true },
  device: { type: String, required: true },
  name: { type: String, required: true },
  owner: { type: String, required: true },
  description: { type: String, required: true },
});
Run Code Online (Sandbox Code Playgroud)

我正在查看Mongoose Indexes,它显示了两种方法,我使用了字段定义。

我还有一个非常简单的 API,它接受 POST 并在此集合上调用 create 以插入记录。

我编写了一个测试,检查是否不应该插入具有相同 pkey 的记录,以及 unique:true 是否正在运行。我已经有一组我读入数组的事件,所以我只是再次发布这些事件中的第一个,看看会发生什么,我预计 mongo DB 会抛出 E11000 重复键错误,但这并没有发生。

var url = 'api/events';
var evt = JSON.parse(JSON.stringify(events[0]));

// POST'ed new record won't …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb mongoose-schema

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

mongodb ×2

mongoose ×2

javascript ×1

mongoose-schema ×1

node.js ×1