MongoDB学习记录(三) - MongoDB的"增查改删"操作之"查"
查找使用的方法: db.collection.find()
查找所有文档
db.collection.find({})或者db.collection.find({})
指定键值对
db.collection.find({field: value}, ...),此方法会找到所有包含了指定的field: value对的文档(如果field字段下的值是一个数组,并且value在这个数组中,那么也将被查找出来,换句话说,value除了直接形容这个字段的值,若字段值是一个数组的话,也可以去匹配数组里的值)
使用查询运算符
例如db.collection.find( { status: { $in: [ "A", "D" ] } } )可以找到status字段值为"A"或"D"的文档。更多查询运算符。
"与"查询
"与"查询可以查询同时满足多个条件的文档。直接将"与"查询的查询条件写在同一个查询过滤器文档中即可隐式地调用$and
进行查询。例如: db.collection.find({status: "A", qty: {$lt: 30}})查询status为"A"并且qty小于30的文档
"或"查询
"或"查询可以查询满足多个条件之一的文档。使用$or
查询运算符,将查询的条件写在一个数组中,例如: db.collection.find({$or: [ {status: "A"}, {qty: {$lt: 30}} ]})将会查询status为"A"或者qty小于30的文档
还可以将"与"查询和"或"查询结合起来,例如:db.collection.find( { status: "A", $or: [ { qty: { $lt: 30} }, { item: /^p/ } ] } )将查询status为"A"同时qty小于30或item以"p"开头的文档。
利用查询运算符还可以进行更多复杂的查询操作。
查询嵌套文档
如果想查询嵌套的文档,可以使用点符号,例如: db.collection.find({ "size.uom": "in" })将查询size字段下的uom字段值为"in"的文档。
查询一个数组
db.collection.find({ tags: [ "red", "blank" ] })将查找一个字段tags的值为数组["red", "blank"]的文档
如果使用查询运算符,还可以有更多的查询方式,例如db.collection.find({ tags: {$all: ["red", "blank"] } })将查找field字段的值为一个数组,且此数组包含"red"和"blank"的文档。