MongoDB之CRUD原创

原创
小哥 3年前 (2022-10-22) 阅读数 52 #大杂烩

1.什么是MongoDB

MongoDB是文档数据库、非关系数据库,使用BSON存储文档数据。

二、MongoDB的CRUD

2.1,数据库的操作

MongoDB随附的原始数据库:admin:类似“root“数据库。

-- 1,查看数据库
show dbs

-- 2,创建数据库
use 数据库名
-- 注:使用use如果数据库存在,则进入相应的数据库,如果不存在,则自动创建;db引用当前图书馆;
-- 如果它是第一次创建,则数据库仅存在于内存中,并且在数据库中创建集合之前不会持久存储到磁盘。

-- 3、删除
db.dropDatabase()
-- 注:用于删除已持久化的数据库。刚在内存中创建的数据库不能删除。

2.2,集合的操作

-- 1,创建集合
db.createCollection("集合名称")

-- 2,查看集合
show tables / show collections

-- 3,删除集合
db.集合名称.drop()
db.md_cus_base_info.deleteMany({})

2.3、单据的操作

-- 1、添加
-- 备注:xyj是集合名称,如果尚未创建集合,则会自动创建该名称。
db.xyj.insert({name:"猪八戒",age:28,gender:"男"});
db.xyj.insertOne({_id:"workd",name:"猪八戒",age:28,gender:"男"});

-- 2,批量添加
db.xyj.insert([
     {name:"沙和尚",age:38,gender:"男"},
     {name:"白骨精",age:16,gender:"女"},
     {name:"蜘蛛精",age:14,gender:"女"}
]);
db.xyj.insertMany([
     {name:"沙和尚",age:38,gender:"男"},
     {name:"白骨精",age:16,gender:"女"},
     {name:"蜘蛛精",age:14,gender:"女"}
]);

-- 3,插入文档对象
db.collection.insertOne() 

-- 4,插入多个文档对象
db.collection.insertMany() 

-- 注意:当我们将文档插入集合时,如果未指定文档id属性,则数据库将自动添加到文档中。id,它用作文档的唯一标识,id您也可以自己指定它。如果指定了数据库,则不会再次添加该数据库。

-- 1,删除文档
db.xyj.remove({_id:“workd”})

-- 2,删除文档字段
db.xyj.update({"_id":123}, {"$unset": {"name":1}})
-- 备注:$unset:指定字段的值只需为任何合法值。

-- 3,全部删除
 db.xyj.remove({})

-- 1,查看全部
db.xyj.find()
-- 同:select * from xyj

-- 2、投影查询:1表示显示 0表示被强制隐藏
db.xyj.find({name:"猪八戒"},{name:1,_id:0})  
-- 同:select name from xyj where name= "猪八戒"

-- 3,按字段条件查询
db.xyj.find({name:"猪八戒"})
-- 同:select * from xyj where name= "猪八戒"

-- 4,按字段条件查询并只返回一条
db.xyj.findOne({name:"猪八戒"})

-- 5,组合查询
-- 语法:db.xyj.find($and:[{},{},{}])
-- 查询等级更高20小于50的
db.xyj.find({$and:[{age:{$gt:NumberInt(20)}},{age:{$lt:NumberInt(50)}}]})  
-- 查询名称包含“FINE”或较旧30的
db.xyj.find({$or:[{age:{$gt:NumberInt(30)}},{name:/精/}]})

-- 6、比较查询
-- 查询等级更高20岁的 
db.xyj.find({age:{$gt:NumberInt(20)}})
-- 备注:
$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于
$ne:不等于(不等于不一定是数字)

-- 7,包括查询
db.xyj.find({age:{$in:[28,38]}})

-- 8,不包含查询
db.xyj.find({age:{$nin:[28,38]}})

-- 9、Like
db.xyj.find({"name": /精/})

-- 10,统计查询
db.xyj.count()
db.xyj.count({字段:条件})

-- 11,是否有($exists)
-- 如果字段存在love,就返回
db.xyj.find({"love": {"$exists": true}})  
-- 如果不存在任何字段love,就返回
db.xyj.find({"love": {"$exists": false}})
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门