1. 摘要
天翼云TELDB提供的MongoDB数据库服务允许用户通过SHELL环境执行核心数据库操作。用户可以连接到MongoDB实例、选择和创建数据库、插入和查询文档、更新和删除数据、创建索引以优化查询。这些基本操作指南涵盖了MongoDB SHELL环境下的数据操作和管理任务,旨在帮助用户高效地使用天翼云TELDB的MongoDB服务进行数据存储和管理。
2.操作指南
2.1 插入文档
insertOne
db.products.insertOne( { item: "card", qty: 15 } );
insertMany
db.products.insertMany( [ { _id: 10, item: "large box",
qty: 20 }, { _id: 11, item: "small
box", qty: 55 }, { _id: 12, item: "medium box", qty: 30 }
] );
Insert
db.collection.insert( <document or array of
documents>, { writeConcern: <document>, ordered:
<boolean> } )
2.2 删除文档
deleteOne
db.orders.deleteOne( { "_id" : ObjectId("563237a41a
4d68582c2509da") } );
db.orders.deleteOne( { "expirationTime" : { $lt:
ISODate("2015-11-01T12:40:15Z") } } );
deleteMany
db.orders.deleteMany( { "client" : "Crude Traders
Inc." } );
remove
db.collection.remove( <query>, <justOne> )
2.3 使用 Drop 删除集合
使用 DB.<COLLECTION>.Drop()来删除一个集合,集合中的全部文档都会被删除,集合相关的索引也会被删除。
db.colToBeDropped.drop()
使用 DB.dropDatabase()来删除数据库,数据库相应文件也会被删除,磁盘空间将被释放。
use tempDB
db.dropDatabase()
show collections // No collections
show dbs // The db is gone
2.4 使用 Find 查询数据文档
Find 是 MongoDB 的基础查询命令,Find 返回数据的游标(Cursor)
db.movies.find( { "year" : 1975 } ) //单条件查询
db.movies.find( { "year" : 1989, "title" : "Batman" } ) //
多条件 and 查询
db.movies.find( { $or: [{"year" : 1989}, {"title" :
"Batman"}] } ) //多条件 or 查询
db.movies.find( { $and : [ {"title" : "Batman"}, {
"category" : "action" }] } ) // and 查询
db.movies.find( { "title" : /^B/} ) //按正则表达式查找
2.5 SQL 查询条件对照
a = 1 -> {a: 1}
a <> 1 -> {a: {$ne: 1}}
a > 1 -> {a: {$gt: 1}}
a >= 1 -> {a: {$gte: 1}}
a < 1 -> {a: {$lt: 1}}
a <= 1 -> {a: {$lte: 1}}
a = 1 AND b = 1 -> {a: 1, b: 1}或{$and: [{a: 1}, {b:
1}]}
a = 1 OR b = 1 -> {$or: [{a: 1}, {b: 1}]}
a IS NULL -> {a: {$exists: false}}
a IN (1, 2, 3) -> {a: {$in: [1, 2, 3]}}
2.6 查询操作符
$lt: 存在并小于
$lte: 存在并小于等于
$gt: 存在并大于
$gte: 存在并大于等于
$ne: 不存在或存在但不等于
$in: 存在并在指定数组中
$nin: 不存在或不在指定数组中
$or: 匹配两个或多个条件中的一个
$and: 匹配全部条件
2.7 更新操作
Update 操作需要执行参数,参数包括查询参数、更新参数。
// insert data
db.movies.insert( [
{ "title" : "Batman", "category" : [ "action", "adventure"
], "imdb_rating" : 7.6, "budget" : 35 }, { "title" :
"Godzilla", "category" : [ "action", "adventure", "sci-fi"
], "imdb_rating" :
6.6 }, { "title" : "Home Alone", "category" : [ "family",
"comedy" ], "imdb_rating" : 7.4
}
] )
db.movies.update( { "title" : "Batman" }, { $set : {
"imdb_rating" : 7.7 } } )
$Push: 增加一个对象到数组底部
$PushAll: 增加多个对象到数组底部.
$Pop: 从数组底部删除一个对象
$Pull: 如果匹配指定的值或条件,从数组中删除相应的
对象.
$PullAll: 如果匹配列表中的任意值,从数组中删除相应
的对象.
$PullAll: 如果匹配列表中的任意值,从数组中删除相应
的对象
$AddToSet: 如果不存在则增加一个值到数组