为什么mongo会返回零匹配文档,尽管有一个?

时间:2016-08-21 20:49:56

标签: c# mongodb linq find unique

我有一个应用程序,要求用户提取用户名。我想让所有用户名都是唯一的,所以写下类似的内容。

var uniqueUsername = false;
MongoPlayerData playerDB = new MongoPlayerData();
var nickCheck = Query.EQ("UserName", myUsername);
uniqueUsername = playerDB.PlayerInfo.Find(nickCheck).Count() == 0;
if(uniqueUsername){//Do something...}

这是逻辑,但有些用户可以获得相同的用户名。怎么可能。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

可能因为文档中的字段/属性没有约束,MongoDB也不支持transaction(它只支持原子操作)。因此,如果您在多个线程上插入文档,则可以这样做。相反,您应该尝试检查_id字段以确保文档的唯一性。如果您确实要确保UserName字段在_id字段的文件中必须是唯一的,请尝试在其上创建unique index

db.PlayerInfo.createIndex( { "UserName": 1 }, { unique: true } )