插入多条数据
db.inventory.insertMany([
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
# 查询全部数据 类似于sql的 SELECT * FROM inventory
db.inventory.find( {} )
# 美观格式
db.inventory.find({}).pretty()
指定过滤条件
# 指定过滤条件
{ <field1>: <value1>, ... }
单值查询
# 根据status查询 类似于Sql的 SELECT * FROM inventory WHERE status = "D"
db.inventory.find( { status: "D" } )
多值查询 in
# 多值查询 类似于Sql的 SELECT * FROM inventory WHERE status in ("A", "D")
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
AND查询
# 等价于Sql的 SELECT * FROM inventory WHERE status = "A" OR qty < 30
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
OR查询
# 等价于Sql的 SELECT * FROM inventory WHERE status = "A" OR qty < 30
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
AND和OR条件组合
# 等价于Sql的 SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )
正则
# 查询item以p开头的数据
db.inventory.find({item:/^p/})
只查某个字段
# 会返回_id 和 item字段
db.inventory.find({},{item:1})
{ "_id" : ObjectId("5dc4242f4885d7328bb98d0e"), "item" : "journal" }
{ "_id" : ObjectId("5dc4242f4885d7328bb98d0f"), "item" : "notebook" }
{ "_id" : ObjectId("5dc4242f4885d7328bb98d10"), "item" : "paper" }
{ "_id" : ObjectId("5dc4242f4885d7328bb98d11"), "item" : "planner" }
{ "_id" : ObjectId("5dc4242f4885d7328bb98d12"), "item" : "postcard" }
# 只返回item
db.inventory.find({},{item:1,_id:0})
{ "item" : "journal" }
{ "item" : "notebook" }
{ "item" : "paper" }
{ "item" : "planner" }
{ "item" : "postcard" }