当前位置:  开发笔记 > 数据库 > 正文

在Mongodb中,如何检查所有文档是否对于值是唯一的?

如何解决《在Mongodb中,如何检查所有文档是否对于值是唯一的?》经验,为你挑选了1个好方法。

假设我在数据库中有4个文档:

{ name: 'alex' }
{ name: 'jen' }
{ name: 'alex' }
{ name: 'john'}

在MongoDB Shell中,我想知道2个或更多文档是否共享相同的"名称".

基本上,如果所有名称都不同,则返回true.如果2或人具有相同的名称,则返回false.



1> Chris Fulsto..:

试试这个,使用一个快速map-reduce查询来查找具有相同名称的文档数,如果它们全部不同则返回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;
}

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有