MongoDB常用语句以及对应BSON语法

这篇具有很好参考价值的文章主要介绍了MongoDB常用语句以及对应BSON语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 查询语句:
 MongoDB语法:

db.collection.find() 

Go BSON语法:

collection.Find() 

例子:查询users集合中所有年龄大于20岁的数据。

 MongoDB语法:db.users.find({age: {$gt: 20}}) 
Go BSON语法:collection.Find(bson.M{"age": bson.M{"$gt": 20}}) 

2. 插入语句:

 MongoDB语法:db.collection.insert() 
Go BSON语法:collection.InsertOne() 或 collection.InsertMany()

例子:在users集合中插入一个名为“Alice”的用户。

MongoDB语法:db.users.insert({name: "Alice"}) 
Go BSON语法:collection.InsertOne(bson.M{"name": "Alice"}) 

 3. 更新语句

MongoDB法:db.collection.update() 
Go BSON语法:collection.UpdateOne() 或 collection.UpdateMany() 

例子:将users集合中所有名字为“Bob”的用户的年龄改为30岁。 

MongoDB语法:db.users.update({name: "Bob"}, { $set: { age: 30 }}, {multi: true}) 
Go BSON语法:collection.UpdateMany(bson.M{"name": "Bob"}, bson.M{"$set": bson.M{"age": 30}}) 

4. 删除语句:                 

MongoDB语法:db.collection.remove() 
Go BSON语法:collection.DeleteOne() 或 collection.DeleteMany() 

例子:删除users集合中名字为“Charlie”的用户

MongoDB语法:db.users.remove({name: "Charlie"}) 
Go BSON语法:collection.DeleteOne(bson.M{"name": "Charlie"}) 

5. 分组语句:

MongoDB语法:db.collection.aggregate() 
Go BSON语法:collection.Aggregate() 

例子:在orders集合中,将所有订单按country字段分组,并统计每个组内的订单数量。

 MongoDB语法:db.orders.aggregate([{$group: {_id: "$country", count: {$sum: 1}}}])
 Go BSON语法:collection.Aggregate(bson.A{bson.M{"$group": bson.M{"_id": "$country", "count": bson.M{"$sum": 1}}}}) 

6. 排序语句:

MongoDB语法:db.collection.sort()
Go BSON语法:collection.Find().Sort()

 例子:查询products集合中,根据price字段降序排序。

MongoDB语法:db.products.find().sort({price: -1}) 
Go BSON语法:collection.Find().Sort("-price") 

7. Count查询语句:

MongoDB语法:db.collection.count() 
Go BSON语法:collection.CountDocuments() 

例子:统计orders集合中订单状态为“shipped”的订单数量。

MongoDB语法:db.orders.count({status: "shipped"}) 
Go BSON语法:collection.CountDocuments(bson.M{"status": "shipped"})

8. 更新文档语句:

MongoDB语法:db.collection.updateOne() 
Go BSON语法:collection.UpdateOne() 

例子:将customers集合中名字为“John”且年龄为25岁的用户的地址更新为“123 Main St”

 MongoDB语法:
db.customers.updateOne({name: "John", age: 25}, { $set: { address: "123 Main St" }})
 Go BSON语法:
collection.UpdateOne(bson.M{"name": "John", "age": 25}, bson.M{"$set": bson.M{"address": "123 Main St"}})
MongoDB语法:db.collection.updateMany()
Go BSON语法:collection.UpdateMany()
 MongoDB语法:db.customers.updateMany({name: "Bob"}, { $set: { address: "456 Elm St" }}) 
Go BSON语法:collection.UpdateMany(bson.M{"name": "Bob"}, bson.M{"$set": bson.M{"address": "456 Elm St"}}) 

9. 聚合语句:

MongoDB语法:db.collection.aggregate()
Go BSON语法:collection.Aggregate()

例子:在users集合中,根据年龄字段分组,并统计每个年龄段的用户数量

 MongoDB语法:db.users.aggregate([{$group: {_id: "$age", count: {$sum: 1}}}]) 
Go BSON语法:collection.Aggregate(bson.A{bson.M{"$group": bson.M{"_id": "$age", "count": bson.M{"$sum": 1}}}}) 

10.模糊查询

MongoDB语法:db.products.find({name: /^apple/}) 
Go BSON语法:collection.Find(bson.M{"name": primitive.Regex{Pattern: "^apple", Options: ""}})

11.嵌套查询

 MongoDB语法:db.users.find({hobbies: {$in: ["hiking"]}})
 Go BSON语法:collection.Find(bson.M{"hobbies": bson.M{"$in": bson.A{"hiking"}}})

12.分页查询

 MongoDB语法:db.collection.find().skip().limit()
 Go BSON语法:collection.Find().Skip().Limit()

 例子:查询orders集合中,按order_date字段降序排序,跳过前20个订单,返回最多10个结果

MongoDB语法:db.orders.find().sort({order_date: -1}).skip(20).limit(10) 
Go BSON语法:collection.Find().Sort("-order_date").Skip(20).Limit(10) 

13.复合查询

例子:查询users集合中,年龄大于20岁且爱好包含“hiking”的用户
 MongoDB语法:db.users.find({age: {$gt: 20}, hobbies: {$in: ["hiking"]}}) 
Go BSON语法:collection.Find(bson.M{"age": bson.M{"$gt": 20}, "hobbies": bson.M{"$in": bson.A{"hiking"}}}) 

14.游标查询文章来源地址https://www.toymoban.com/news/detail-475970.html

例子:查询orders集合中,按order_date字段降序排序,返回包含order_date和total字段的结果。
 MongoDB语法:var cursor = db.orders.find().sort({order_date: -1})cursor.forEach(function(doc) { print(doc.order_date, doc.total); })
 Go BSON语法:var cursor, err = collection.Find(context.Background(), bson.M{}, options.Find().SetSort(bson.M{"order_date": -1}))for cursor.Next(context.Background()) { var result bson.M err = cursor.Decode(&reslut) // 处理result中的order_date和total字段 } 

到了这里,关于MongoDB常用语句以及对应BSON语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL常用语法( WITH 语句)

    在这里插入代码片— 个人笔记: 努力奋斗-Li亚Q 个人笔记: 努力奋斗-Li亚Q WITH语句是一种在SQL中常用的语法,用于创建临时表或视图,以便在后续的查询中使用。它可以简化复杂查询的编写,并提高查询性能。以下是一些WITH语句的示例: 这个WITH语句创建了一个名为temp_ta

    2024年02月09日
    浏览(34)
  • Elasticsearch 7.X版本常用语法语句

    Elasticsearch 中集群相关的健康、统计等相关的信息都是围绕着 _cat API 进行的。 查看健康状况 查看所有节点 查看所有节点详细信息 查看主节点 查看所有索引 查看所有分片 创建索引 查看索引 查看索引字段类型 修改索引字段 注:只能新增字段,不能删除字段 删除索引 别名

    2024年02月03日
    浏览(35)
  • MySQL 语句查询的方法案例分享,和一些常用查询语句 2023.7.08

    1. 查询出部门编号为30的所有员工  2. 所有销售员的姓名、编号和部门编号 3. 找出奖金高于工资的员工 4. 找出奖金高于工资60%的员工 5. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料 6. 找出部门编号为10中所有经理,部门编号为20中所有销售员,还有

    2024年02月13日
    浏览(40)
  • SQL常用(查询日期)语句

    目录 SQL常用日期查询语句及显示格式设置 1.查询当前年、月、周相关时间  2.查询当前第几季度 3.查询当前在一年内是第几周 SqlServer中的日期与时间函数  SQL查询前10条的方法为: 1.1.查询当前年份 1.2.查询当前年份第几天  1.3.查询当前月份第几天 1.4.查询当前周的星期几 

    2024年02月16日
    浏览(40)
  • ES查询常用语法

    目录 1. ElasticSearch之查询返回结果各字段含义 2. match 查询 3. term查询 4. terms 查询 5. range 范围 6. 布尔查询 6.1 filter加快查询效率的原因 7. boosting query(提高查询) 8. dis_max(最佳匹配查询) 9. 分页 10. 聚合查询【内含实际的demo】 执行命令:索引库名称/_search 空搜索的结果为: 按照

    2023年04月09日
    浏览(49)
  • MySQL高阶语句之常用查询

    目录 常用查询 按排序 区间判断及查询不重复记录 对结果进行分组 限制结果条目 设置别名 通配符 子查询 (增、删、改、查) 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 例如只取 10 条数据、对查询结果进行排序或分组等等 P

    2024年02月10日
    浏览(36)
  • ​gp,pg常用数据类型,查询语句

    2024年02月15日
    浏览(36)
  • Elasticsearch 常用的增加、删除、修改、查询语句

    新增 删除 修改 批量增删改 查询 查询指定索引下全部数据 查询指定索引下指定id的数据 查询指定索引下全部数据 查询指定值(match) 在多个字段中查询指定值(multi_match) match、multi_match是模糊匹配,匹配时会对所查找的进行分词,然后按分词匹配查找。 term 查询

    2024年02月03日
    浏览(39)
  • elasticsearch的常用查询语法(大全)

    参考文章网址:https://www.cnblogs.com/xiohao/p/12970224.html es查询 修改时,不指定的属性会自动覆盖,只保留指定的属性(不正确的修改指定文档方式) 使用POST命令,在id后面跟_update,要修改的内容放到doc文档(属性)中(正确的修改指定文档方式) 准备数据 查询语句 输出结果 通过观察

    2024年02月05日
    浏览(46)
  • 工作常用ES DSL查询语句(干货满满)

       工作中几乎每天都需要使用到ES查询数据,需要根据自己的查询需求构造DSL查询语句来实现,本文记录并分享本人工作中常用的DSL语句以及所遇到问题的解决方案,DSL语句灵活多变,可进行多种组合,任你搭配,让我们一起往下看,希望对你有帮助。 2.1 查看所有索引的

    2024年02月02日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包