MongoDB 不直接使用 SQL 風格的運算符,而是以特定鍵名表示:
| SQL | MongoDB | 說明 |
|---|---|---|
| > | $gt | 大於 |
| < | $lt | 小於 |
| >= | $gte | 大於等於 |
| <= | $lte | 小於等於 |
| != | $ne | 不等於 |
| IN | $in | 包含 |
| NOT IN | $nin | 不包含 |
| EXISTS | $exists | 字段是否存在 |
| + | $inc | 數字字段增減 |
| SET | $set | 設定字段值 |
| UNSET | $unset | 刪除字段 |
| PUSH | $push | 向陣列追加值 |
| PUSHALL | $pushAll | 一次追加多值 |
| ADDTOSET | $addToSet | 陣列去重追加 |
| POP | $pop | 移除首/尾元素 |
| PULL | $pull | 移除指定值 |
| PULLALL | $pullAll | 移除多個值 |
db.collection->insert(['name' => 'caleng', 'email' => 'admin#admin.com']);
無固定結構限制,字段名可隨意定義。
// 僅更新第一條符合條件的記錄
db.collection.update(['count' => ['$gt' => 1]], ['$set' => ['test2' => 'OK']]);
// 更新所有符合條件記錄 (multi=true)
db.collection.update(['count' => ['$gt' => 3]], ['$set' => ['test2' => 'OK']], false, true);
// upsert=true: 不存在則新增
db.collection.update(['count' => ['$gt' => 4]], ['$set' => ['test5' => 'OK']], true, false);
// upsert=true, multi=true
db.collection.update(['count' => ['$gt' => 5]], ['$set' => ['test5' => 'OK']], true, true);
// 返回游標(集合列表)
db.collection.find(['name' => 'bailing'], ['email'=>'email@qq.com']);
// 僅返回單一文檔
db.collection.findOne(['name' => 'bailing'], ['email'=>'email@qq.com']);
// 排序、分頁
db.collection.find().sort(['age'=>1]); // 正序
db.collection.find().sort(['age'=>-1]); // 倒序
db.collection.count(); // 總筆數
db.collection.limit(10).skip(0); // 分頁
db.collection.remove(['name'=>'jerry']); // 刪除特定文檔
db.collection.drop(); // 刪除整個集合
db.user.distinct('name', ['age' => ['$lt' => 20]]);