有这样一个需求:需要设置通过 3 个字段确定唯一。 比如:
adder:北京市海淀区 xx 小区 4 单元 #地址
tel:0103333333 #电话
t_id:1 # 标记数据的更新次数
这里除了 adder 不变,tel 和 t_id 都可能会变化。也就是说可能包含这样一些数据:
_id:213123123123
adder:北京市海淀区 xx 小区 4 单元
tel:0103333333
t_id:1
_id:324243242123
adder:北京市海淀区 xx 小区 4 单元
tel:010333435435
t_id:1
_id:909809880808
adder:北京市海淀区 xx 小区 4 单元
tel:010334536546
t_id:1
_id:576876894643
adder:北京市海淀区 xx 小区 4 单元
tel:010444444
t_id:1
_id:89879879879
adder:北京市海淀区 xx 小区 4 单元 #地址
tel:0103333333 #电话
t_id:2
在我的思想中,NoSQL 貌似没有这个选项想 mysql 那样创建约束条件。然后看到有创建唯一索引,但是为上面的那种可以创建吗? 谢谢
1
hareandlion 2017-05-27 09:51:50 +08:00 via iPhone 1
用三个字段合并 hash 化之后的结果做_id 怎么样
|
2
wwqgtxx 2017-05-27 09:59:22 +08:00 via iPhone 1
联合唯一索引
|
3
Light3 2017-05-27 10:06:46 +08:00
我怎么记得好像设置下哪个字段唯一 然后这个字段值是这样的 就不会再插入成功呢
|
4
xiongbiao 2017-05-27 12:59:45 +08:00
可以
|
6
fds 2017-05-27 15:08:30 +08:00 1
类似 db.collection("xxx").createIndexes([
{ key: { adder: 1, tel: 1, t_id: 1 }, background: true, sparse: true, unique: true, }, ]) |
7
fds 2017-06-01 13:42:38 +08:00
啊 对了 address 缩写是 addr 不是 er
|