mongodb学習ドキュメント:
https://docs.mongoing.com/
1.データベース操作
1.データベースが存在する場合はそれを使用し、存在しない場合は作成します。
use test1;
すべてのデータベースを表示
show dbs;
現在のデータベースを切り替える
use test1;
現在のデータベースを表示
db
現在のデータベース内のすべてのコレクションを表示する
show tables;
コレクション内のすべてのデータを表示します(条件をクエリするときに、コレクション内にないフィールドを使用すると、エラーは報告されませんが、結果は報告されません)
db.students.find({})//花括号可加可不加
データベースを削除する
在当前数据库下运行db.dropDatabase()(有表也可以删除,而hive有表的话就不能删除数据库)
コレクションの削除(テーブルにデータがあるかどうかに関係なく、nosqlとhiveを直接削除できます)
db.users.drop();
コレクション内のすべてのドキュメントを削除します
db.inventory.deleteMany({}) 必须带着花括号
update修改已有的文档可以同时新增字段
insert添加新的文档同时可以新增字段
2、挿入操作
insert({})插入空的时候必须带花括号
フォーマット
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
1 ...コレクションを事前に定義する必要はなく、挿入されたデータは自動的に作成され、フィールドの作成は制限されません。同時に、新しいフィールドを自由に追加することも、フィールドの値を挿入しないこともできます。
db.students.insert({
name:'zb1',
age:1001,
hello:1
}
)
2 ...挿入アクションはinsert()関数db.collection_name.insert()を使用し
ます3.時間を挿入し、jsをサポートし、新しいDate()
db.students.insert({
name:'zb11',
age:10011,
hello:11,
sex:"male",
addtime:new Date()//系统时间(格林威治时间,晚8小时),服务器时间不可修改,前端时间可以修改
}
)
db.students.find()
4.複数のレコードを挿入するには、配列ドキュメントの[]に注意してください。レコードを挿入する場合でも、insertmany()を使用して[]を使用してください。
db.students.insertMany([{
name:'zb11',
age:10011,
hello:13,
sex:"male",
addtime:new Date()//系统时间(格林威治时间),服务器时间不可修改,前端时间可以修改
},
{
name:'zb11',
age:10011,
hello:14,
sex:"male",
addtime:new Date()//系统时间(格林威治时间),服务器时间不可修改,前端时间可以修改
}]
)
5.insert = insertmany、1つだけ挿入
3、3.1修飾子を更新:その後に(key:value)
{$set:{
status:'pending'}}
1.$set如果存在这个字段则更新,不存在则创建
2.$currentDate()更新创建时间,不存在则自动创建 修改器:
3.$inc 更新数字字段并加n ,n必须是整数 ,1是加1,-1是减1
3.2クエリャー:前面がキーで、ルート条件は背面のvlaueです
{age:{$gte:10}}
等于: :/$eq
大于:$gt
大于等于:$gte
小于:$lt
小于等于:$lte
不等于:$ne
フォーマット:
db.collection.updateMany(
<filter>,相当于sql的where
<update>,相当于sql的set
{
upsert: <boolean>,//默认false,ture表示没有这个条文档的话自动创建
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string> // Available starting in MongoDB 4.2.1
}
)
updateMany()、
1。修飾子:設定、フィールド実装の追加と値の割り当て、設定、フィールド実装の追加と値の割り当て、s e t 、プラス李のGeワードセグメントの実際の現在および割り当てられた値、このフィールドの存在が更新された場合、それが作成SET存在しません。
db.students.updateMany({},{$set:{sex:'male'}})
2.修飾子:$ currentDateは作成時間を更新します。存在しない場合は、自動的に作成されます。
db.students.updateMany({
status:'stop'},{$currentDate:{createtime:true}})
3.update、updateOneは1つだけ更新します
db.students.updateOne({age:11},{$set:{age:10,status:'ok'}})
4.updateMany()更新多条==更新学生set status =“ stop” where status =“ ok”
db.students.updateMany({
status:'ok'},{$set:{
status:'stop'}})
5.replaceOne()、以前に一致したドキュメントを2番目のドキュメントに置き換えます
db.students.replaceOne({
status:'ok'},{
status:'stop',name:"xiao qi" ,age:10,num:1})
6. {upsert:true}の前にこのドキュメントを照合できない場合、新しいドキュメントが自動的に作成されます
db.students.replaceOne({
status:'o'},{
status:'stop',name:"xiao qi" ,age:10,num:1},{upsert:true})
7.20歳以上のすべての学生のステータスが保留に変更されます
db.students.updateMany(
{age:{$gte:10}},{$set:{
status:'pending'}}
)
8. 10歳以上の学生の年齢を+1に変更し、変更時間を記録します。修飾子$ incを使用して数値フィールドを更新し、nを追加します。
db.students.updateMany(
{age:11},{$inc:{age:1},$currentDate:{createtime:true}}
)
9. Xiao Ming(aihao)のフィールドホビーを追加します
db.students.updateMany(
{
stuname:"小明"
},
{
$set:{aihao:"足球,篮球,乒乓球"}
}
)