【发布时间】:2017-02-23 16:01:06
【问题描述】:
我在一个集合中有 2 个字段,该集合是空的,需要填充。 它是这样定义的:
public class MyColl { [BsonElement("id")] public ObjectId id { get; set; } public ObjectId A { get; set; } public ObjectId B { get; set; } }我想要实现的是:
让 K 成为要插入的对,例如K=(x,y) 我希望 mongodb 在执行插入行之前检查以下约束:
1) 如果 A==x AND B==y 并且这个已经存在于集合中,不要插入那个。
2) 如果 A==y AND B==x 并且这个已经存在于集合中,不要插入那个。
3) 如果 A==x AND B==y 并且已经存在 A==y 和 B==x,则不要插入。
4) 如果 A==y AND B==x 并且已经存在 A==x 和 B==y,则不要插入。
我认为我需要的是 (A,B) 和 (B,A) 上的唯一复合索引来检查 1 和 2,但我不知道如何处理其他两个约束。
我该怎么做?
【问题讨论】:
标签: c# mongodb mongodb-indexes