mongodb文档操作

插入文档

语法

mongodb使用insert() 或save()方法插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

实例

# 存储{"name":"wfei"}到myCollection 集合中
> db.myCollection.insert({"name":"wfei"})
WriteResult({ "nInserted" : 1 })
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }

注:如果myCollection集合不在数据库中,会自动创建该集合
我们也可以将数据定义为一个变量,如下所示:

# 定义document变量
> document=({"name":"ccc"});
{ "name" : "ccc" }

然后执行插入操作

> db.myCollection.insert(document)
WriteResult({ "nInserted" : 1 })
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }
{ "_id" : ObjectId("5a9024cc113385ab59f380b1"), "name" : "ccc" }

更新文档

语法

update()语法用于更新已经存在的文档,语法如下:

db.COLLECTION_NAME.update(
,
,
{
  upsert:,
  multi:,
  writeConcern:
}
)

参数说明:

  • update的查询条件
  • update的对象和一些更新的操作符,如$,$inc
  • upsert 可选 ,这个参数的意思是,如果where条件下不存在值,是否执行插入操作,默认是false
  • multi 可选,mongodb默认false,只更新找到的第一条记录,如果设置为true,就把找到的所有记录都更新
  • writeConcern 可选,抛出异常的级别

实例

# 更新name值为ddd的文档的age字段为19
> db.myCollection.update({"name":"ddd"},{$set:{"age":19}},{upsert:true})
WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("5a902bced5f9a583d52a7f42")
})
## myCollection集合中不存在name值为ddd的文档,所以添加到集合中
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }
{ "_id" : ObjectId("5a9024cc113385ab59f380b1"), "name" : "ccc" }
{ "_id" : ObjectId("5a902bced5f9a583d52a7f42"), "name" : "ddd", "age" : 19 }
# 将name为ddd的文档age更新为27
> db.myCollection.update({"name":"ddd"},{$set:{"age":27}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }
{ "_id" : ObjectId("5a9024cc113385ab59f380b1"), "name" : "ccc" }
{ "_id" : ObjectId("5a902bced5f9a583d52a7f42"), "name" : "ddd", "age" : 27 }
#将name为ddd的文档age增加27
> db.myCollection.update({"name":"ddd"},{$inc:{"age":27}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }
{ "_id" : ObjectId("5a9024cc113385ab59f380b1"), "name" : "ccc" }
{ "_id" : ObjectId("5a902bced5f9a583d52a7f42"), "name" : "ddd", "age" : 54 }

另外对于upsert、multi两个属性可以简写,只写true、false就可以第一个boolean值代表upsert,第二个boolean代表multi值

> db.myCollection.update({"name":"eee"},{$set:{"address":"万年花城"}},true,false)
WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("5a902e8bd5f9a583d52a7f5c")
})
> db.myCollection.find()
{ "_id" : ObjectId("5a90238c113385ab59f380b0"), "name" : "wfei" }
{ "_id" : ObjectId("5a9024cc113385ab59f380b1"), "name" : "ccc" }
{ "_id" : ObjectId("5a902bced5f9a583d52a7f42"), "name" : "ddd", "age" : 54 }
{ "_id" : ObjectId("5a902e8bd5f9a583d52a7f5c"), "name" : "eee", "address" : "万年花城" }

删除文档

语法

mongodb删除文档使用remove,语法如下

db.COLLECTION_NAME.remove(
  ,
  
)

参数说明:

  • query 可选,删除的条件
  • justone 可选,如果选择1或者true,则只删除一个文档

实例

#  删除name为ccc的文档
> db.myCollection.remove({"name":"ccc"},{justone:true})
WriteResult({ "nRemoved" : 1 })

同样上面的删除语句可以简写

#  删除name为ccc的文档
> db.myCollection.remove({"name":"ccc"},1)
WriteResult({ "nRemoved" : 1 })

删除集合中所有的文档数据

如果要删除整个集合的文档数据

语法

可以使用以下语法:

db.COLLECTION_NAME.remove({})

实例

> db.myCollection.remove({})
WriteResult({ "nRemoved" : 3 })
> db.myCollection.find()
> 

你可能感兴趣的