在MQL中,也可以支持我们搜索数组中的对象:
-- 填充数据db.games.insertOne({"title":"Winning Eleven 2021","versions":[{"language":"English", "code":"US", "market":"NorthAmerica"},{"language":"Chinese", "code":"CN", "market":"China"},{"language":"Japanese", "code":"JP", "market":"Japan"}]});-- 搜索子对象的market是Japan的db.games.find({"versions.market":"Japan"});-- 搜索子对象的market是China且code是CN的db.games.find({"versions.market":"China","versions.code":"CN"});-- 使用elemMatch:必须同一个子对象满足多个条件db.games.find({"versions":{$elemMatch:{"market":"China","code":"CN"}}});
查询操作(find)控制返回字段
在MQL中,find操作可以指定只返回指定的字段,即所谓的投影操作(projection),需要注意的是:_id字段必须明确指明不返回,否则默认会返回 。操作实例如下:
-- 指明不返回_id,且只返回name字段db.teams.find({"members":{$gte:10}},{"_id":0, name:1});-- 不指明是否返回_id则默认返回,且只返回name字段db.teams.find({"members":{$gte:10}},{name:1});-- 它其实等价于db.teams.find({"members":{$gte:10}},{"_id":1, name:1});
3 update操作
在MQL中,update操作的格式为:db.<collectionName>.update 。
假设这里要实现更新yzw-football-team的members为22人:
db.teams.updateOne({name:"yzw-football-team"},{"$set":{members:29}});
需要注意的是:使用 updateOne 无论条件匹配多少个记录,它都只会更新第一条 。有点类似于.NET中的FirstOrDefault()方法 。
同时,MQL还提供了 updateMany 方法以支持同时更新多个满足条件的文档,例如这里将所有人数为22人的team的名字都改为yzw-football-team:
db.teams.updateMany({members:22},{"$set":{name:"yzw-football-team"}});
除此之外,还可以使用 update 来更新数组:
使用$push即可增加一个对象到数组底部:
db.games.update({title:"Winning Eleven 2021"},{"$push":{ versions:{"language": "Korean","code": "KO", "market": "South Korea"} }});
此外,还可以使用$pushAll即可增加多个对象到数组底部,使用$pop来从数组底部删除一个对象,使用$addToSet来实现如果不存在则新增一个值到数组等等 。这里,就不再展示示例了 。
4 remove操作
在MQL中,删除文档的命令格式为:db.<collectionName>.remove,一般情况下它需要配合查询条件来使用,否则它会删除所有文档(慎用) 。
remove操作示例:
db.teams.remove({name:"yzw-football-team"}); // 删除name为yzw-football-team的文档db.teams.remove({members:{"$lt":22}}); // 删除members小于22人的文档db.teams.remove({}); // 删除所有文档,慎用
5 drop操作
在MQL中,删除集合的命令格式为:db.<CollectionName>.drop() 。
使用此命令,集合中的全部文档都会被删除,集合相关的索引也会被删除 。
例如,我们将teams这个集合删除:
db.teams.drop(); // 慎用
那么,如何删除某个数据库呢?可以使用 db.dropDatabase() 来删除数据库,需要注意的是 数据库响应文件也会被删除,磁盘空间会得到释放 。
use studentsDBdb.dropDatabase(); // 慎用
总结
本文总结了MongoDB的基本操作,包括了insert、find、remove、update和drop 。学会这些基本操作,我们就可以应对大部分的常见使用场景了 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- mongodb是nosql数据库吗 3 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 5 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 6 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 7 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 8 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 9 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 11 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 12 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 13 NoSQL | MongoDB入门实战教程
- mongodb是nosql数据库吗 14 NoSQL | MongoDB入门实战教程