1、查询
<pre name="code" class="sql"><pre name="code" class="sql">mongo --quiet
> use cric
switched to db cric
> show collections
c1
system.indexes
> db.c1.find()
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "name" : "test", "age" : 30 }
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "name" : "text", "age" : 20 }
> db.c1.find({name:"test"})
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "name" : "test", "age" : 30 }
> db.c1.find({name:"aaa"})
> db.c2.find()
#只查询某些键值
> db.c1.find({},{age:1})
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "age" : 20 }
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "age" : 30 }
#不展示某些键值
> db.c1.find({},{_id:0})
{ "name" : "test", "age" : 30 }
{ "name" : "text", "age" : 20 }
说明:
a.集合c1中有两条文档数据,集合c2中没有数据
b.查询时(包括之后的插入),不用预先定义集合
c.不加参数查询全部,可添加参数查询相关内容
2、插入
> db.c1.insert({"name":"Davi"})
WriteResult({ "nInserted" : 1 })
> db.c1.insert({"age":25})
WriteResult({ "nInserted" : 1 })
> db.c1.insert({"_id":1,"name":"Ham"})
WriteResult({ "nInserted" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "name" : "test", "age" : 30 }
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "name" : "text", "age" : 20 }
{ "_id" : ObjectId("55dfc72a78038c96c84ebd58"), "name" : "Davi" }
{ "_id" : ObjectId("55dfc77978038c96c84ebd59"), "age" : 25 }
{ "_id" : 1, "name" : "Ham" }
说明:插入格式比较灵活,不同于表,没有字段、类型等限制。_id列自动生成,可以自定义插入的值
或save函数
> db.c1.save({"sex":"F"})
WriteResult({ "nInserted" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "name" : "test", "age" : 30 }
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "name" : "text", "age" : 20 }
{ "_id" : ObjectId("55dfc72a78038c96c84ebd58"), "name" : "Davi" }
{ "_id" : ObjectId("55dfc77978038c96c84ebd59"), "age" : 25 }
{ "_id" : 1, "name" : "Ham" }
{ "_id" : ObjectId("55dfc85278038c96c84ebd5a"), "sex" : "F" }
或定义文档对象,然后插入
> co1={"name":"John","age":20,"sex":"M"}
{ "name" : "John", "age" : 20, "sex" : "M" }
> co2={"name":"Tom","age":22,"sex":"F"}
{ "name" : "Tom", "age" : 22, "sex" : "F" }
> db.c1.insert(co1)
WriteResult({ "nInserted" : 1 })
> db.c1.save(co2)
WriteResult({ "nInserted" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dc2538e46c747066598ab5"), "name" : "test", "age" : 30 }
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "name" : "text", "age" : 20 }
{ "_id" : ObjectId("55dfc72a78038c96c84ebd58"), "name" : "Davi" }
{ "_id" : ObjectId("55dfc77978038c96c84ebd59"), "age" : 25 }
{ "_id" : 1, "name" : "Ham" }
{ "_id" : ObjectId("55dfc85278038c96c84ebd5a"), "sex" : "F" }
{ "_id" : ObjectId("55dfc95f78038c96c84ebd5b"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfd01078038c96c84ebd5f"), "name" : "Tom", "age" : 22, "sex" : "F" }
3、删除
> db.c1.remove({name:"test"})
WriteResult({ "nRemoved" : 1 })
> db.c1.remove({name:"test"})
WriteResult({ "nRemoved" : 0 })
> db.c1.remove({_id:1})
WriteResult({ "nRemoved" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dfcf4c78038c96c84ebd5e"), "name" : "text", "age" : 20 }
{ "_id" : ObjectId("55dfc72a78038c96c84ebd58"), "name" : "Davi" }
{ "_id" : ObjectId("55dfc77978038c96c84ebd59"), "age" : 25 }
{ "_id" : ObjectId("55dfc85278038c96c84ebd5a"), "sex" : "F" }
{ "_id" : ObjectId("55dfc95f78038c96c84ebd5b"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfd01078038c96c84ebd5f"), "name" : "Tom", "age" : 22, "sex" : "F" }
说明:键可以不加双引号,同样适应查询、插入及之后的更新等操作。
4、修改
update函数
> db.c1.find()
{ "_id" : ObjectId("55dfc96878038c96c84ebd5c"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfd01078038c96c84ebd5f"), "name" : "Tom", "age" : 22, "sex" : "F" }
> db.c1.update({name:"Tom"},{age:25})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.c1.update({name:"Dave"},{name:"Davi"},true)
WriteResult({
"nMatched" : 0,
"nUpserted" : 1,
"nModified" : 0,
"_id" : ObjectId("55dfdfae54995179b649022f")
})
> db.c1.find()db.c1.find()
{ "_id" : ObjectId("55dfc96878038c96c84ebd5c"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfd01078038c96c84ebd5f"), "age" : 25 }
{ "_id" : ObjectId("55dfdfae54995179b649022f"), "name" : "Davi" }
说明:a. 更新完成后只保留更新键值对,其它键值对被删除。
b. 第一个参数为更新条件,第二个参数为更新的内容,第三个参数为true时,更新时,数据存在则更新,否则插入后更新
修改器
$set只更新匹配条件的键值,保留其它键值
> db.c1.find()
{ "_id" : ObjectId("55dfe9d378038c96c84ebd6f"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd70"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd71"), "name" : "Davi", "age" : 20, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 20, "sex" : "M" }
> db.c1.update({name:"John"},{age:21})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dfe9d378038c96c84ebd6f"), "age" : 21 }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd70"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd71"), "name" : "Davi", "age" : 20, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 20, "sex" : "M" }
> db.c1.update({name:"Davi"},{$set:{age:21}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dfe9d378038c96c84ebd6f"), "age" : 21 }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd70"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd71"), "name" : "Davi", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 20, "sex" : "M" }
$inc只能操作健的值为数字类型,增加已有键的值
> db.c1.update({name:"Lily"},{$inc:{age:1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.c1.find()db.c1.find()
{ "_id" : ObjectId("55dfe9d378038c96c84ebd6f"), "age" : 21 }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd70"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe9d378038c96c84ebd71"), "name" : "Davi", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfeafa78038c96c84ebd72"), "name" : "Lily", "age" : 21, "sex" : "M" }
上述更新默认只更新匹配条件的第一个文档,要更新多个文档,则设置第四个参数为true
> db.c1.find()
{ "_id" : ObjectId("55dfe88678038c96c84ebd6a"), "name" : "John", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6b"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6c"), "name" : "Davi", "age" : 20, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6e"), "name" : "Lucy", "age" : 20, "sex" : "M" }
> db.c1.update({age:20},{$set:{age:21}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.c1.find()
{ "_id" : ObjectId("55dfe88678038c96c84ebd6a"), "name" : "John", "age" : 21, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6b"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6c"), "name" : "Davi", "age" : 20, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 20, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6e"), "name" : "Lucy", "age" : 20, "sex" : "M" }
> db.c1.update({age:20},{$set:{age:21}},false,true)
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })
> db.c1.find()
{ "_id" : ObjectId("55dfe88678038c96c84ebd6a"), "name" : "John", "age" : 21, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6b"), "name" : "Tom", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6c"), "name" : "Davi", "age" : 21, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 21, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6e"), "name" : "Lucy", "age" : 21, "sex" : "M" }
> db.c1.update({age:21},{$inc:{age:1}},false,true)
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 5 })
> db.c1.find()
{ "_id" : ObjectId("55dfe88678038c96c84ebd6a"), "name" : "John", "age" : 22, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6b"), "name" : "Tom", "age" : 22, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6c"), "name" : "Davi", "age" : 22, "sex" : "F" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6d"), "name" : "Lily", "age" : 22, "sex" : "M" }
{ "_id" : ObjectId("55dfe88678038c96c84ebd6e"), "name" : "Lucy", "age" : 22, "sex" : "M" }