MongDB最简单的CRUD
MongDB最简单的CRUD
插入文档 (CREATE)
在数据库中,数据插入是最基本的操作,在MongoDB使用db.collection.insert(document)语句来插入文档.
db.person.insert({name:'du',age:25});
批量插入文档
insert语句不但可以插入单个文档,还可以一次性插入多个文档。
插入多个文档时,insert命令的参数为一个数组,数组元素为BSON格式的文档。
多个文档可以放在一个数组内,一次插入多条数据,例如:db.users.insert([{name:"tommy"},{name:"xiaoming"}])
文档查询 - find方法(READ)
MongoDB中查询检索数据时使用find命令,使用方法如下:
- 语法:
- db.collection.find(criteria,projection);
- 参数:
criteria – 查询条件,文档类型,可选。
projection– 返回的字段,文档类型,可选,若需返回所有字段,则忽略此参数。
find命令两个可选参数,criteria为查询条件,projection为返回的字段,如果不传入条件数据库会返回该集合的所有文档。
复合查询 - AND
当查询条件为多个字段时,需要使用多字段复合条件查询,下面我们来学习一下,如何实现多字段复合查询。
在查询条件中指定多个字段条件,检索出所有满足条件的文档数据。
示例:查询inventory集合中type字段为food并且价格低于95的所有文档。
- db.inventory.find({$and:[{type: "food"},{ price: { $lt: 95 }}]});
db.person.find({$and:[{age:{$gt:30}},{name:"Lucy"}]});
复合查询 - OR
当有多个查询条件但只需满足其中一个条件就可时,我们就可以使用$or运算符。
db.person.find({$or:[{status:"A"},{age:30}]});
限制条件 - 结果集
有的时候只需要返回结果集中的部分字段,这个时候我们可以通过传入字段条件的方式来实现。
- 语法:
- db.collection.find( 查询条件,字段条件 )
- 参数:
字段条件:JSON对象,格式=>{字段:值},值等于1时表示需要返回,0时表示不需要返回。
- 示例:返回person的"status"和"age"字段。
- db.person.find({}, {status:1,age:1})
update命令(UPDATE)
update命令可以更新指定文档的特定字段值,也可以替换整个文档,如果更新操作会增加文档大小,MongoDB将重新分配空间并重新定位。
- 语法:
- db.collection.update(query,update,{upsert:boolean,multi:boolean});
- 参数:
query:查询条件,文档,和find中的查询条件写法一致。
update:修改内容,文档。
upsert(可选):如果值为true,那么当集合中没有匹配文档时,创建文档。默认false。
multi(可选):如果值为true,那么将更新全部符合条件的文档,否则仅更新一个文档,默认false。将person集合中所有年龄小于30岁的数据,更新其状态为'X'(提示:小于的操作符是$lt)。db.person.update({age:{$lt:30}},{$set:{"status":"X"}},{multi:true});
如果想我想要update的数据不存在就自动创建是怎么弄呢?
db.person.update({x:100},{y:101},true);最后带一个true参数就表示如果要Update的数据不存在就自动create创建一条了。save命令
save命令可以更新或插入一个新文档,与update命令不同的是,save只能对一个文档进行操作。
- 语法:
- db.collection.save();
使用save命令将文档{name:"Tony",age:12,gender:"man"}保存到person集合中。db.person.save({name:"Tony",age:12,gender:"man"});
remove命令(DELETE)
- 语法:
- db.collection.remove(
- query,
- justOne
- )
- 参数:
query:BSON类型,删除文档的条件。
justOne:布尔类型,true:只删除一个文档,false:默认值,删除所有符合条件的文档。将users集合中所有status="D"的文档删除操作db.person.remove({"status":"D"});
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步