Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使两个字段的组合在我的收藏中独一无二_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 使两个字段的组合在我的收藏中独一无二

Javascript 使两个字段的组合在我的收藏中独一无二,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我使用的是以下猫鼬模型: var Test = db.model('Test', db.Schema({ one: { type: String, required: true }, two: { type: String, required: true } }, { strict: false }) ); 它有两个必填字段,one和two,以及strict:false,因为可能还有其他名称不确定的字段 我希望one和two的组合是唯一的。这意味

我使用的是以下猫鼬模型:

var Test = db.model('Test', db.Schema({
        one: { type: String, required: true },
        two: { type: String, required: true }
    },
    { strict: false })
);
它有两个必填字段,
one
two
,以及
strict:false
,因为可能还有其他名称不确定的字段

我希望
one
two
的组合是唯一的。这意味着可能有多个文档具有相同的
一个
或相同的
两个
,但它们都不应具有相同的
一个
两个
组合


这可以通过Mongoose实现吗?

您可以在Mongoose中使用模式的方法执行,该方法在模式级别定义索引:

var testSchema = db.Schema({
    "one": { "type": String, "required": true },
    "two": { "type": String, "required": true }
}, { "strict": false });

testSchema.index({ "one": 1, "two": 1}, { "unique": true });
var Test = db.model("Test", testSchema );

如果“two”是对另一个模式的引用,那么有没有办法做同样的事情?感谢
“one”中提供的
1
值是什么:1
?@AkashTomar 1表示升序order@chridam我已经照你说的做了,但没有一个行得通。这是我的问题。如何在复合索引上实现真正的唯一性?