从 SQL 到 MongoDB,这一篇就够了( 二 )


SELECT ... WHERE

  • SQL 语句
SELECT user_id, statusFROM peopleWHERE status = "A"
  • Mongodb 语句
db.people.find({ status: "A" },{ user_id: 1, status: 1, _id: 0 })SELECT ... AND
  • SQL 语句
SELECT *FROM peopleWHERE age > 25ANDage <= 50
  • Mongodb 语句
db.people.find({ age: { $gt: 25, $lte: 50 } })SELECT ... OR
  • SQL 语句
SELECT *FROM peopleWHERE status = "A"OR age = 50
  • Mongodb 语句
db.people.find({ $or: [ { status: "A" } , { age: 50 } ] })SELECT ... LIKE
  • SQL 语句
FROM peopleWHERE user_id like "%bc%"
  • Mongodb 语句
db.people.find( { user_id: /bc/ } )-or-db.people.find( { user_id: { $regex: /bc/ } } )SELECT ... OEDER BY
  • SQL 语句
SELECT *FROM peopleWHERE status = "A"ORDER BY user_id ASC
  • Mongodb 语句
db.people.find( { status: "A" } ).sort( { user_id: 1 } )SELECT ... COUNT
  • SQL 语句
SELECT COUNT(user_id)FROM people
  • Mongodb 语句
db.people.count( { user_id: { $exists: true } } )ordb.people.find( { user_id: { $exists: true } } ).count()SELECT DISTINCT
  • SQL 语句
SELECT DISTINCT(status)FROM people
  • Mongodb 语句
db.people.aggregate( [ { $group : { _id : "$status" } } ] )或者,对于不同的不超过 [BSON 大小限制](https://docs.mongodb.com/manual/reference/limits/#limit-bson-document-size) 的值集db.people.distinct( "status" )SELECT ... LIMIT SKIP
  • SQL 语句
SELECT *FROM peopleLIMIT 5SKIP 10
  • Mongodb 语句
db.people.find().limit(5).skip(10)EXPLAIN SELECT
  • SQL 语句
EXPLAIN SELECT *FROM peopleWHERE status = "A"
  • Mongodb 语句
db.people.find( { status: "A" } ).explain()Update Records下面显示了与更新表中现有记录相关的各种 SQL 语句以及相应的 MongoDB 语句 。
UPDATE ... SET
  • SQL 语句
UPDATE peopleSET status = "C"WHERE age > 25
  • Mongodb 语句
db.people.updateMany({ age: { $gt: 25 } },{ $set: { status: "C" } })UPDATE ... INC
  • SQL 语句
UPDATE peopleSET age = age + 3WHERE status = "A"
  • Mongodb 语句
db.people.updateMany({ status: "A" } ,{ $inc: { age: 3 } })Delete Records下面显示了与从表中删除记录相关的各种 SQL 语句以及相应的 MongoDB 语句 。
DELETE WHERE
  • SQL 语句
DELETE FROM peopleWHERE status = "D"
  • Mongodb 语句
db.people.deleteMany( { status: "D" } )DELETE
  • SQL 语句
DELETE FROM people
  • Mongodb 语句
db.people.deleteMany({})看到这里,想必大家应该已经将脑海中 SQL 相关的知识和 MongoDB 一一对应起来了,那么剩下的就需要大家多多的实践,深入挖掘 。




推荐阅读