Mongodb相关

mongodb cluster集群环境搭建

https://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/


1. Server1, 2, 3 config server

2. Server8 main server

3. Server1-7 shard server

4. Changed in version 2.6: MongoDB enables the text search feature by default. In MongoDB 2.4, you need to enable the text search feature manually to create text indexes and perform text search.


config server:
	mongod --configsvr --port 27019 --logpath /usr/local/mongodb/log/configsvr.log --logappend --dbpath /data/configdb --fork
	
main server:
	mongos --configdb 10.0.0.2:27019,10.0.0.3:27019,10.0.0.4:27019 --logpath /usr/local/mongodb/log/mongos.log --fork
	

# enable database shard
sh.enableSharding("test")
# enable collection shard
sh.shardCollection("test.data", { "name": 1, "key": 1, "_id": 1 } )

# enable text index

db.reviews.createIndex( { comments: "text" } )

db.printShardingStatus()



mongodb 语法

// change column type
db.stock_info.find().forEach( function(obj) {
    obj.jrkpj = parseFloat(obj.jrkpj);
    obj.zrspj = parseFloat(obj.zrspj);
    obj.dqjg = parseFloat(obj.dqjg);
    obj.jrzgj = parseFloat(obj.jrzgj);
    obj.cjje = parseFloat(obj.cjje);
    obj.cjgs = NumberInt(obj.cjgs);
    db.stock_info.save(obj);
    });

db.stlogs.aggregate(
    {
       $match : {
            "date" :  {
            $gte: ISODate("2016-04-08T00:00:00.000Z"),
                $lt: ISODate("2016-05-01T00:00:00.000Z")
                },
             "version" : "2.0.2222"
        }
    },
    {
        $project :
        {
            _id: 
            {
                yearmonthday : {$dateToString: {format:"%Y-%m-%d", date: "$date"}},
                device_uuid: "$device_uuid",
                feedback_type: "$feedback_type",
                version: "$version"
            }
        }
    },
    {
        $group :
        {
        "_id" : {"date": "$_id.yearmonthday", "feedback_type": "$_id.feedback_type", "version": "$_id.version"}, device_uuids: {$addToSet: "$_id.device_uuid"}
        }
    }
    ,
    {
        $unwind: "$device_uuids"
    },
    {
        $group: { _id: "$_id", uuidCount: { $sum:1} }
    },
    {
        $sort: {"_id.date": -1}
    }
)

//类似select distinct(count)功能
db.logs.distinct("uuid",
    {"date" :  {
        $gte: ISODate("2016-04-22T00:00:00.000Z"),
        $lt: ISODate("2016-04-24T23:59:59.999Z")
        },
        "version" : "3.0.1111",
        "feedback_type": "type1"
    }).length




以下是一些MongoDB相关的面试题及其答案: 1. MongoDB是什么?它与传统的关系型数据库有什么不同之处? 答:MongoDB是一个开源的文档数据库,它使用类似JSON的文档格式存储数据。与传统的关系型数据库相比,MongoDB具有更高的可扩展性和更好的性能。 2. MongoDB中的分片是什么?它们是如何工作的? 答:分片是MongoDB中的一种横向扩展方式,它将数据分散到多个服务器上。每个分片都是一个独立的MongoDB实例,它们共同组成了一个分片集群。当数据量增加时,可以通过添加更多的分片来扩展MongoDB的性能。 3. MongoDB中的索引是什么?它们是如何工作的? 答:索引是MongoDB中用于加速查询的一种机制。MongoDB支持多种类型的索引,包括单字段索引、复合索引、全文索引等。当查询需要访问大量数据时,索引可以帮助MongoDB快速定位需要的数据。 4. MongoDB中的聚合管道是什么?它们是如何工作的? 答:聚合管道是MongoDB中用于对数据进行聚合操作的一种机制。聚合管道由多个阶段组成,每个阶段都可以对数据进行不同的操作,例如过滤、排序、分组等。当需要对大量数据进行复杂的聚合操作时,聚合管道可以帮助MongoDB高效地完成任务。 5. MongoDB中的事务是什么?它们是如何工作的? 答:事务是MongoDB中用于保证数据一致性的一种机制。MongoDB支持多文档事务,可以在多个文档之间执行原子操作。当需要对多个文档进行复杂的操作时,事务可以帮助MongoDB保证数据的一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值