7day

回到目录

数据类型:字符串

mongoDB的管道是个好东西,它能够将广大操作批处理达成,即将多少个指令放入3个管道,然后去种种的执行它们,明日本人要说的是,利用管道中的分组来促成达成中的ditinct+group的功用,即先对3个成分去重,然后即八个字段进行分组,如您的userinfoID,它对应八个planID,而大家在planID在表中必定是重复的,那时,大家必要总括userinfo对应多个种planID,那时难点就来了,尤于planID是双重的,所以分组的结果只怕是荒谬的,它并不是的确意思上的(planID种类),正确的作法应该是先对planID去重新,然后再根据userinfoID去作分组,而那个在大部的数据库里,是因而多重分组落成的,即选对userinfoID和planID进行分组,然后对结果实行userinfoID的分组,那种就把多于的planID去掉了。

1、定义

现实作法:

字符串是多少个一如既往的字符的聚合,用于储存和象征基本的文本音讯。单、双、三引号之间的始末称之为字符串;

//多分组(group+distinct)
db.M_User_Footprints.aggregate([
                 { $group: { _id: { UserInfoID: "$UserInfoID", ObjID: "$PlayVideo.ObjID" } } },
                 { $group: { _id: "$_id.UserInfoID", count: { $sum: 1 } } },
                 { $sort: { "_id": 1 } }
]);

a = ‘hello world!’

在意,那里的第三个分组用的是首先个分组的_id,所以加上了$_id,这意味着使用方面group的数据源来作为首个分组的键。

b = “你好!”

而一旦只是单个分组,就很不难完毕了,也看一下代码

c = ”’Hello world!”’

//单分组
db.M_User_Footprints.aggregate([
    { $group: { _id: "$UserInfoID", result: { $sum: 1 } } }
])

贰 、基本操作:

从地点两段代码大家能够见到,分组键必须用_id,分组的结果名称能够自身定义,{$sum:1}每回自加1。

a.capitalize()  #首字母大写

上面采取map…reduce也足以完毕分组的效劳

统计 1

db.runCommand({
    mapreduce: "M_User_Footprints",
    map: function Map() {
       emit(
        { "UserInfoID": this.UserInfoID, "ObjID": this.PlayVideo.ObjID }
        ,
         { count: 1 }
        );
    },
    reduce: function Reduce(key, values) {
        total = 0;//定义一个变量total , values是一个数组
        for (var i in values) {
            total += values[i].count
        }

        return { "count": total };
    },
    finalize: function Finalize(key, reduced) {
        return reduced;
    },
    out: { inline: 1 }
});

a.casefold()  #去掉字母大写,全体大写

 

统计 2

重临目录

a.center(50,’-‘)  #将a放在中间

统计 3

统计 4

a.find() #查找值的索引 找不到重返-1

统计 5

a.index()  #重返查找值的目录,找不到报错

统计 6

a.isalnum()  #看清字符是否阿拉伯数字,是再次回到True,不是重回Talse

统计 7

a.isalpha   #认清是或不是字符

统计 8

a.indecimal()   #判断是或不是整数

 统计 9

a.isdigit()   #判定是还是不是整数

统计 10

a.isidentifier()  #看清是还是不是官方的变量

统计 11

a.islower # 判断是否小写

统计 12

a.isprintable() #能或无法被打印

统计 13

a.replace()  # 替换

a.rfind()  #从右侧开端找

统计 14

a.split()  #将字符串变为列表 暗中同意以空格分

 统计 15

统计 16

 

3、格式化:a.format()

a_1 = ‘my name is {0},I am {1} year old’

a_1.format(‘fany’,29)

a_1 = my name is fany,I am 29 year old

肆 、常用操作:a = ‘abc’

isdigit  #看清是否数字

统计 17

replace #替换

统计 18

统计 19

find  #查找

统计 20

count  #统计  

统计 21

strip #剥离

统计 22

统计,center #中间

统计 23

split  #字符串变列表

统计 24

format #字符串格式化

统计 25

join #列表变为字符串

统计 26

 统计 27