標籤:switch let local 嵌套 文檔 man 筆記 match 大於等於
// 查看所有資料庫show dbs// amdin 0.000GB// local 0.000GB// 使用資料庫use admin// switched to db admin// 建立資料庫:向資料庫中插入記錄db.user.insert({ ‘name‘: ‘wangxi‘ })// WriteResult({ "nInserted" : 1 })// 顯示當前資料庫db// admin// 查詢當前集合中的文檔db.user.find()// { "_id" : ObjectId("59f7f0088cc643905a25fa7f"), "name" : "wangxi" }// 根據條件查詢(and 條件查詢)db.user.find({ name: ‘wangxi‘, age: ‘25‘ })// 以格式化的方式來顯示所有文檔db.col.find().pretty()// 只返回一個文檔db.col.findOne()// 跳過指定數量、返回指定數量的文檔db.user.find({}).limit(3).skip(1)// or 條件查詢db.user.find({ $or: [{ name: ‘wangxi‘}, { name: ‘hanjiaren‘}]})// { "_id" : ObjectId("59f821f8f4bf9a3582c6ef5c"), "name" : "wangxi" }// { "_id" : ObjectId("59f8222df4bf9a3582c6ef5f"), "name" : "hanjiaren" }// 條件操作符db.user.find({ age: { $gt: 20 }}) // 大於db.user.find({ age: { $lt: 30}}) // 小於db.user.find({ age: { $gte: 30}}) // 大於等於db.user.find({ age: { $lte: 30}}) // 小於等於db.user.find({ age: { $eq: 25}}) // 等於db.user.find({ age: { $ne: 25}}) // 不等於// $type 操作符 —— 擷取值為指定類型的文檔(可以查表擷取不同類型的文檔對應的編號)db.col.find({ title: { $type: 2 }})// 刪除當前資料庫db.dropDatabase()// { "dropped" : "admin", "ok" : 1 }// 顯示當前資料庫中的所有集合show collections / show tables// user// 刪除指定集合db.user.drop()// true// 更新文檔db.user.update({ name: ‘wangxi‘}, { $set: { name: ‘Raychan‘ }}, { upsert: true, multi: true })// WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })db.user.find()// { "_id" : ObjectId("59f81c6f8cc643905a25fa87"), "name" : "Raychan" }db.user.update({ name: ‘wangxi‘}, { $set: { name: ‘Raychan‘ }}, true, true)db.user.find()// { "_id" : ObjectId("59f81c6f8cc643905a25fa87"), "name" : "Raychan" }// { "_id" : ObjectId("59f81ef674a03e811969aa93"), "name" : "Raychan" }// 刪除文檔db.user.remove({ name: ‘Raychan‘ }, true) // 只刪除一個文檔// WriteResult({ "nRemoved" : 1 })// 刪除所有文檔db.user.remove({}) // {} 不能少WriteResult({ "nRemoved" : 5 })// remove 已經過時,官方推薦使用 deleteOne 和 deleteMany db.user.deleteOne({ name: ‘wangxi‘})// { "acknowledged" : true, "deletedCount" : 1 }// 排序db.user.find({}).sort({ age: 1})// 彙總 $sum、$avg、$max、$min(欄位引用要加 $)db.user.aggregate([{ $group: { _id: ‘$name‘, num_of_user: { $sum: 1}}}])// select name, count(*) from user group by name// 管道操作// $project: 修改輸入文檔的結構。可以用來重新命名、增加或刪除域,也可以用於建立計算結果以及嵌套文檔。db.user.aggregate({ $project: { _id: 0, name: 1, age: 0 }})// 0 代表不輸出,1 代表輸出 類似於 sql 中的 select name from user// $match: 用於過濾操作// 篩選 age > 20 的文檔db.user.aggregate({ $match: { age: { $gt: 20 }}})// $skip: 效果和 find().skip(num) 相同db.user.aggregate({ $skip: 3 })
MongoDB 基本操作學習筆記