MongoDB

MongoDB

MongoDB是一个非关系型(NoSQL)的数据库

MongoChef 是mongdb的图形可视化软件
  • mongodb的操作

    #普通的开启模式
    mongod #开启命令
    #参数
    –dbpath=路径 #指定数据库的存储路径
    –logpath=路径.log #指定的日子文件
    –fork #默认在后台启动
    –config=/etc/mongod.conf #指定使用配置文件打开

    #创建一个简洁的打开方式
    #创建一个.sh
    在文件中写入:mongod --fork --config=/etc/mongod.conf

    #每次启动的时候
    sh xxx.sh

    #进入mongodb中
    mongo

    #关闭mongodb
    service mongod stop

    #关闭用户验证
    security:
    authorization: disabled

    #有些时候service mongod stop关闭不了
    1.查看进程号:ps -aux|grep mongo
    2.kill -9 进程号

数据库的操作

  • 创建数据库

    1.use 数据库的名字 #当数据库中没有集合,集合中没有数据,默认不显示Bson
    2.db.userinfo.insert({name:‘李野’,age:62,sex:‘男’,city:‘东北’})

  • 删除数据库

    #选择好数据库
    use 数据库
    db.dropDatabase()

  • 查看数据库

    show dbs

  • 查看当前使用的数据库

    db.getName()
    db

  • 断开连接

    1.exit
    2.quit()

  • 帮助

    help

集合的操作

  • 查看所有的集合

    show collections

  • 创建集合

    1.语法:db.createCollection(‘集合的名字’)
    2.语法:db.集合名.insert({key:value})

    #前者是创建了一个空的集合,后者是带有文档的集合

  • 删除集合

    db.集合的名字.drop()

文档的操作

  • 插入文档

    1.插入单条
    db.userinfo.insert({username:‘tom’,password:123456})

    2.插入多条
    db.userinfo.insert([{username:‘tom1’,password:123456},{username:‘tom2’,password:123456}])

    3.save()
    db.userinfo.save({name:‘jack’,age:90,sex:‘男’})
    db.userinfo.save([{name:‘jack’,age:90,sex:‘男’},{name:‘jack’,age:90,sex:‘男’}])

  • 更新文档

    #语法:
    db.userinfo.update(
    {query},
    {update},
    {
    {upset:}
    {multi:}
    {writeConcern:}
    }

    )

    #参数说明
    query:update的条件,相当sql中where
    update:set(直接更新),set(直接更新),set(),inc(在原有的基础累加)
    upset:可选项,如果记录不存在,是否当成新数据插入
    multi:可选项,默认会更新第一条记录,默认值是false,如果为true,更新所有
    writeConcern:可选,错误抛出的等级

    #修饰器
    $set:用来指定一个键的值,如果这个键不存在,则增加,有了以后直接修改
    $inc:如果已经有了该键,直接拼接

    #name:jack的年龄改为18
    db.userinfo.update({name:‘jack’},{$set:{age:18}})

    db.userinfo.update({name:‘jack’},{$inc:{age:18}})

    #修改所有的值
    db.userinfo.update({name:‘jack’},{$set:{age:18}},{multi:1})

    db.userinfo.save(
    {document}
    {
    {writeConcern:}
    }

    )

    #save()执行更新,直接覆盖的过程,一定要加上_id,主要是覆盖原来的值
    db.userinfo.save({name:‘李野很困’,age:18,sex:‘美男子’})

  • 删除文档

    #语法
    db.集合名字.remove(
    {query},
    {
    {justOne:},
    {writeConcern:}
    }
    )

    #参数说明
    query:当做必选,删除的条件
    justOne:在mongodb中为True只会删除符合条件的一条数据,默认为false,删除全部

    #删除name:jack的
    db.userinfo.remove({name:‘李野很困’},{justOne:true})

  • 查询

    #find()

    #查询全部的数据
    db.userinfo.find()

    #格式输出
    db.userinfo.find().pretty()

    #查找一条
    db.userinfo.findOne()

    #带有条件的查询
    db.userinfo.findOne({name:‘tom’})

  • 条件运算

    #大于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{gt:20}}).pretty()
    #大于等于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{gte:20}}).pretty()
    #小于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{lt:20}}).pretty()
    #小于等于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{lte:20}}).pretty()
    #不等于KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{ne:62}}).pretty()
    #使用_id进行查询
    db.userinfo.find({"_id" : ObjectId(“5cac65bcb503068e96b400d2”)}).pretty()
    #统计
    db.userinfo.find().count()
    #正则
    db.userinfo.find({name:/野/})
    #以字结尾的
    db.userinfo.find({name:/困$/})

  • and和or

    #and
    db.userinfo.find({name:/野/,sex:‘男’})

    #$or
    db.集合.find(
    {
    条件,
    $or:[{条件1},{条件n}]
    }
    )

    #年龄
    #select * from a where name=‘李野’ and (age=18 or age>=20);
    db.userinfo.find({name:‘李野’,$or:[{age:18},{age:62}]})

  • limit和skip

    #limit()
    #skip() 跳过多少条
    #跳过前两条
    db.userinfo.find().skip(2)
    #获取前两条
    db.userinfo.find().limit(2)
    #先略过前两条,在获取下两条
    db.userinfo.find().skip(2).limit(2).pretty()

  • 排序

    #sort(条件)
    #注意:升序1,降序是-1

    db.userinfo.find().sort({age:-1}).skip(1).limit(2)

pymongo

pip install pymongo

from pymongo import MongoClient
from bson.objectid import ObjectId

#连接
conn = MongoClient(host='10.11.58.103',port=27017)

#选择数据库
db = conn.python
#查询
res = db.userinfo.find({'_id':ObjectId("5cac65bcb503068e96b400d2")})

for i in res:
    print(i)
内容概要:文章基于4A架构(业务架构、应用架构、数据架构、技术架构),对SAP的成本中心和利润中心进行了详细对比分析。业务架构上,成本中心是成本控制的责任单元,负责成本归集与控制,而利润中心是利润创造的独立实体,负责收入、成本和利润的核算。应用架构方面,两者都依托于SAP的CO模块,但功能有所区分,如成本中心侧重于成本要素归集和预算管理,利润中心则关注内部交易核算和获利能力分析。数据架构中,成本中心与利润中心存在多对一的关系,交易数据通过成本归集、分摊和利润计算流程联动。技术架构依赖SAP S/4HANA的内存计算和ABAP技术,支持实时核算与跨系统集成。总结来看,成本中心和利润中心在4A架构下相互关联,共同为企业提供精细化管理和决策支持。 适合人群:从事企业财务管理、成本控制或利润核算的专业人员,以及对SAP系统有一定了解的企业信息化管理人员。 使用场景及目标:①帮助企业理解成本中心和利润中心在4A架构下的运作机制;②指导企业在实施SAP系统时合理配置成本中心和利润中心,优化业务流程;③提升企业对成本和利润的精细化管理水平,支持业务决策。 其他说明:文章不仅阐述了理论概念,还提供了具体的应用场景和技术实现方式,有助于读者全面理解并应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值