4
比方說,我在數據庫中有4個文件:在Mongodb中,如何檢查所有文檔對於某個值是否唯一?
{ name: 'alex' }
{ name: 'jen' }
{ name: 'alex' }
{ name: 'john'}
在MongoDB中殼,我想知道,如果2個或更多的文檔共享相同的「名稱」。
基本上,如果所有名稱都不相同,則返回true。 如果2或人名稱相同,則返回false。
比方說,我在數據庫中有4個文件:在Mongodb中,如何檢查所有文檔對於某個值是否唯一?
{ name: 'alex' }
{ name: 'jen' }
{ name: 'alex' }
{ name: 'john'}
在MongoDB中殼,我想知道,如果2個或更多的文檔共享相同的「名稱」。
基本上,如果所有名稱都不相同,則返回true。 如果2或人名稱相同,則返回false。
試試這個,使用快速map-reduce query找到具有相同名稱的文件數量,如果他們都不同返回true:
function allDifferent() {
var m = function() { emit(this.name, 1); }
var r = function(key, emits) {
var n = 0; emits.forEach(function(v) { n += v; }); return n;
}
var result = db.mycol.mapReduce(m, r, { out: "namecounts" });
var allDifferent= (db.namecounts.count({ value: { $gt: 1 } }) == 0)
db.namecounts.drop();
return allDifferent;
}