去重mongodb LIST

using MongoDB;
using DockSample.DB;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using MongoDB.Bson;

namespace DockSample
{
    public partial class Form2 : DockContent
    {
        public Form2()
        {
            InitializeComponent();
        }

        ////////////////////// workaround of RichTextbox control‘s bug:
        ////////////////////// If load file before the control showed, all the text format will be lost
        ////////////////////// re-load the file after it get showed.
        ////////////////////private bool m_resetText = true;
        ////////////////////protected override void OnPaint(PaintEventArgs e)
        ////////////////////{
        ////////////////////    base.OnPaint(e);
        ////////////////////    if (m_resetText)
        ////////////////////    {
        ////////////////////        m_resetText = false;

        ////////////////////    }
        ////////////////////}

        ////////////////////////protected override string GetPersistString()
        ////////////////////////{
        ////////////////////////    // Add extra information into the persist string for this document
        ////////////////////////    // so that it is available when deserialized.
        ////////////////////////    return GetType().ToString() + ",1123," + Text;
        ////////////////////////}

        ////////////////////private void menuItem2_Click(object sender, System.EventArgs e)
        ////////////////////{
        ////////////////////    MessageBox.Show("This is to demostrate menu item has been successfully merged into the main form. Form Text=" + Text);
        ////////////////////}

        ////////////////////private void menuItemCheckTest_Click(object sender, System.EventArgs e)
        ////////////////////{

        ////////////////////}

        ////////////////////protected override void OnTextChanged(EventArgs e)
        ////////////////////{
        ////////////////////    base.OnTextChanged(e);

        ////////////////////}

        private void button1_Click(object sender, EventArgs e)
        {
            usera u = new usera();
            u.cid = 10;
            u.name = "测试看看";
            WriteConcernResult s = MongoDBHelper.InsertOne("user", u);
            label1.Text = s.DocumentsAffected.ToString() + "------" + s.HasLastErrorMessage.ToString();//s.HasLastErrorMessage=false既是表示操作成功!
        }

        private void button2_Click(object sender, EventArgs e)
        {
            IMongoQuery query = MongoDB.Driver.Builders.Query.EQ("cid", 9);
           // usera u = MongoDBHelper.GetOne<usera>("user", query);
            IEnumerable<usera> u = MongoDBHelper.GetAll<usera>("user").Distinct<usera>(new ModelComparer());

            //usera u = MongoDBHelper.GetOne<usera>("user", "555993c18825b905c8879edc");
            //label1.Text = u.cid.ToString() + "---" + u.name;

            foreach(usera ua in u)
            {
                richTextBox1.AppendText(ua.cid.ToString() + "--" + ua.name + "\r\n");
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            MongoDBHelper.DeleteAll("user");

        }

    }

    public class usera
    {
        public ObjectId id { get; set; }
        public int cid { get; set; }

        public string name { get; set; }
    }

    public class ModelComparer : IEqualityComparer<usera>
    {
        public bool Equals(usera x, usera y)
        {
            return x.name.ToUpper() == y.name.ToUpper();
        }
        public int GetHashCode(usera obj)
        {
            return obj.name.ToUpper().GetHashCode();
        }
    }
}

  

时间: 2024-08-08 08:20:34

去重mongodb LIST的相关文章

MongoDB 权限、备份、还原、去重

MongoDB 权限.备份.还原.去重 权限 数据安全是数据库至关重要的一部分,那么下面是设置MongoDB的用户权限的大致过程. 首先,在无授权模式下新建数据库管理员: 启动数据库服务: mongod 启用命名行工具: mongo use admin db.createUser({user:"gly",pwd:"[email protected]",roles:[{role:"userAdminAnyDatabase",db:"adm

mongodb中处理插入数据去重问题

最近在写一个爬虫工具,将网站的数据储存到mongodb中,由于数据有重复的,所以我就在建立数据库的时候,为集合建立了索引,下面说下我的步骤,集合名称为drugitem, 下面是集合截图: 我要为name字段创建唯一索引,因为要保证name没有重复: 就这样我运行程序发现数据比原来没有设置唯一索引时少了好多,我仔细查看发现程序在name字段重复的地方停止了,这不是我想要的结果,因为后面的数据还没有查询完成.于是我就删除了原来创建的name索引: 然后remove数据,重新按照老办法重新抓取数据,这

如何在Mongodb集合中统计去重之后的数据

比方说我们有个Mongodb集合, 以这个简单的集合为例,我们需要集合中包含多少不同的手机号码,首先想到的应该就是使用distinct关键字, db.tokencaller.distinct('Caller').length 如果想查看具体的而不同的手机号码,那么可以省略后面的length属性,因为db.tokencaller.distinct('Caller')返回的是由所有去重手机号码组成的数组. 但是,这种方式对于所有情况都是满足的嘛?并不如此,如果要统计的集合记录数较大,如千万级别的,那

Mongodb去除重复的数据,pymongo去重

接上一篇的,发现爬斗鱼主播信息存入Mongodb数据库后,发现很多重复的数据,毕竟斗鱼不可能有这么多的主播,所以很多页是有重复的主播房间的. 查了一下怎么去重,发现比较麻烦,与其存入重复的数据后面再去重,还不如在存入数据库的时候就检查,不去存入重复的数据,这样就避免了后期再去做去重工作.于是改动如下: #-*- coding:utf-8 -*- #_author:John #date:2018/10/25 0:07 #softwave: PyCharm import requests impor

mongodb去重

由于某些原因,我们的MongoDB里存在重复数据,甚至已经影响到数据统计. 其实在MongoDB 3.2之前可以通过索引直接去重.但这一特性在3.2版本之初已经移除. {unique : true, dropDups : true} # 无法使用了 大概思路是,通过aggregation先group出重复的键值对并做count,之后match所有count>2的键值对,认为他们是重复的,保留其中一条,删除其余.实现代码如下: from pymongo import DeleteOne from

mongodb distinct去重

MongoDB的destinct命令是获取特定字段中不同值列表.该命令适用于普通字段,数组字段和数组内嵌文档. mongodb的distinct的语句: db.users.distinct('last_name') 等同于 SQL 语句: select DISTINCT last_name from users 表示的是根据指定的字段返回不同的记录集. 一个简单的实例: // > db.addresses.insert({"zip-code": 10010}) > db.a

mongodb讲解

mongodb 1标题1错误!未定义书签. 1.1标题2错误!未定义书签. 1.1.1标题3错误!未定义书签.   1 概述 mongodb:是介于关系型与非关系之间的一种数据库系统! 1.1 概述,mongodb是文档型非关系数据库 是一种数据库,类似MySQL. 不同于MySQL的是:是一种"非关系型数据库". 非关系型数据库:NOSQL-(Not Only SQL, non-relation).不以关系型(二维表)进行数据存储结构的数据库的统称.包括:memcached(内存型数

MongoDB使用小结:一些常用操作分享

本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell.pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程. MongoDB的使用之前也分享过一篇,稍微高阶点:见这里:<MongoDB使用小结> 1.shell登陆和显示 假设在本机上有一个端口为17380的MongoDB服务,假设已经把mongo bin文件加入到系统PATH下. 登陆:mongo --port 17380 显示DB:show dbs 进入某DB:use test_cswuy

Mongodb基础用法及查询操作[转载]

插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":"mongodb测试文章.","name":"刘"+i});                                                      ... } db.blog.list.find().limit(10).forEach(