文档数据库服务

文档数据库服务基础命令规范

2025-07-01 06:22:50

查询命令

文档数据库服务主要查询命令有:

  • find():最基本的查询命令,基础语法是:db.collection.find(query, projection)。

    • query:选择条件,类似于 WHERE 子句。

    • projection:可选,使用来projection展示查询的字段,类似于SQL的SELECT。通过{ field: 1 }这样的语法可以指定要返回的字段,其中1表示要返回该字段,0表示不返回该字段 。


示例:

//查询age=20的数据
db.students.find({age: 20}) 

//查询age=20的数据,查询的结果只返回name,不返回_id
db.students.find({age: 20}, {name: 1, _id: 0})
  • findOne():查找一条数据,会返回第一条匹配到的数据。语法:

db.collection.findOne(query, projection)

示例:

db.students.findOne({age: 20})
  • limit() 和 skip():分页查询,limit() 指定数据条数,skip()跳过前几条:

db.students.find().limit(5)
db.students.find().limit(5).skip(10) // 跳过前10条,返回5条数据
  • sort():排序。按照一个字段排序,orderly 参数指定排序方式,-1为降序,1为升序,默认升序:

db.students.find().sort({age:1})
db.students.find().sort({age: -1}) //降序
  • count(): 统计结果数量:

db.collection.find(query).count()

也就是说, 文档数据库服务查询主要通过 find() 和查询条件的组合来实现,在find()中使用limit()、skip()、sort()、count()等方法进行查询控制。 

还有一点需要留意,查询的结果,返回的是一个Cursor。Cursor使用完毕后要及时关闭,否则会产生内存堆积。

写入/更新命令

文档数据库服务写入和更新主要有以下几种命令:

  • insert():插入新数据。

基础语法:

db.collection.insert(document)

或者

db.collection.insertOne(document)

示例:

db.users.insert({name:"John", age:30})
db.users.insertOne({name:"Mary", age:25})
  • save():如果有_id,则更新,否则插入新文档。

db.collection.save(document)
  • update():更新已存在的文档。

基础语法:

db.collection.update(query, update, {multi:true})

参数: query:更新的查询条件。 

update:{$set: {xxx: yyy}},使用set操作符更新字段。 

{multi:true}:是否更新多条记录,默认false只更新一条。

 示例:

db.users.update({name:"John"}, {$set: {age: 31}})
db.users.update({name:"John"},{$set: {age: 31}},{multi:true})
  • insertMany():插入多条数据。

db.collection.insertMany([documents])
  • remove():删除数据。

db.collection.remove(query, justOne)

示例:

db.users.remove({age: {$lt: 30}}) // 删除age 小于30 的所有文档
db.users.remove({name:"John"}, true) //删除name为John的一条文档

删除命令

文档数据库服务删除命令有多种方式,主要有:

  • db.collection.remove():删除集合中的一个或多个文档。

db.COLLECTION_NAME.remove({条件})

删除一个指定_id的文档:

db.users.remove({_id: ObjectId("507c35dd8fada716c89d0013")})

删除满足条件的多个文档:

db.users.remove({age: {$lt: 18}})

该命令会删除age小于18的所有文档。

  • db.collection.deleteOne():删除集合中的一个文档。。

db.COLLECTION_NAME.deleteOne({条件})
  • db.collection.deleteMany():删除集合中的多个文档。

db.COLLECTION_NAME.deleteMany({条件})
  • db.collection.drop():删除整个集合。

db.COLLECTION_NAME.drop()
  • db.dropDatabase():删除当前整个数据库。

db.dropDatabase()

总的来说,删除一个或少量文档可用remove()或deleveOne(),删除多个文档用deleteMany(),删除整个集合或数据库用drop() 和dropDatabase()。


zcsw8J_yQdxR