-
query篇
仅为方便查看,内容来源MongoDB官网。https://docs.mongodb.com/manual/tutorial/query-documents/#read-operations-queries
- 数据准备
db.inventory.insert_many([
{"item": "journal",
"qty": 25,
"size": {"h": 14, "w": 21, "uom": "cm"},
"color":["red", "blank"],
"status": "A"},
{"item": "notebook",
"qty": 50,
"size": {"h": 8.5, "w": 11, "uom": "in"},
"color":["red", "blank"],
"status": "A"},
{"item": "paper",
"qty": 100,
"size": {"h": 8.5, "w": 11, "uom": "in"},
"color":["red"],
"status": "D"},
{"item": "planner",
"qty": 75,
"size": {"h": 22.85, "w": 30, "uom": "cm"},
"color":["red", "blank"],
"status": "D"},
{"item": "postcard",
"qty": 45,
"size": {"h": 10, "w": 15.25, "uom": "cm"},
"color":["red", "blank", "pink"],
"status": "A"}
])
- 查询全部
cursor = db.inventory.find({}) # 查询全部
# 等同于
SELECT * FROM inventory
- 条件查询
# -------
cursor = db.inventory.find({"status": "D"})
# 等同于
SELECT * FROM inventory WHERE status = "D"
# -------
cursor = db.inventory.find({"status": {"$in": ["A", "D"]}})
# 等同于
SELECT * FROM inventory WHERE status in ("A", "D")
- and查询 or查询
多条件,默认是and操作。
cursor = db.inventory.find({"status": "A", "qty": {"$lt": 30}})
#等同于
SELECT * FROM inventory WHERE status = "A" AND qty < 30
or操作符
cursor = db.inventory.find(
{"$or": [{"status": "A"}, {"qty": {"$lt": 30}}]})
# 等同于
SELECT * FROM inventory WHERE status = "A" OR qty < 30
and和or混合使用
cursor = db.inventory.find({
"status": "A",
"$or": [{"qty": {"$lt": 30}}, {"item": {"$regex": "^p"}}]})
# 等同于
SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
未完待续....