lokijs - 有没有办法在loki中创建复合唯一索引?

时间:2016-11-15 18:30:59

标签: lokijs

有没有办法在loki中指定复合唯一索引?我试过像:

null

但这似乎会产生两个不同的独特索引..这是我想要独特的两者的组合。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

我通过制作代理键做了类似的事情:

db.addCollection('contents', {unique: 'mySurrogateKey'});

将记录添加到集合时,您可以创建自定义属性并将其设置为简单连接:

record.mySurrogateKey = `${record.id}${record.wsID}`
collection.insert(record)

答案 1 :(得分:0)

相关:https://github.com/techfort/LokiJS/issues/450

我真正使用的是

import SparkMD5 from "spark-md5";
import stringify from "fast-json-stable-stringify";

public getTemplateId(t: IDbTemplate) {
    const {front, back, css, js} = t;
    return SparkMD5.hash(stringify({front, back, css, js}));
}

const tHook = (t: IDbTemplate) => {
    t.key = this.getTemplateId(t);
};

this.template.on("pre-insert", tHook);
this.template.on("pre-update", tHook);