基础命令篇
本篇笔记中
集合 = 表
文档 = 行
对象= 健
属性 = 值
(一)插入文档
(1)db.collection.insert({})
#插入一个或多个文档
> db.test.insert({
_id:1,name:'zbj',
age:18,
addres:'zhu'
})
WriteResult({ "nInserted" : 1 }) ##插入一个或多个文档
(2)db.collection.insertOne({})
#同时填入多个文档时只会插入第一个文档
(3)db.collection.insertMany( [ { },{ } ] )
#只允许插入多个文档
> db.test.insertMany([{
"_id" : 2,
"name" : "zbj",
"age" : 18,
"addres" : "zhu" },
{ "_id" : 4,
"name" : "zbj",
"age" : 18,
"addres" : "zhu"}
])
(4)定义变量
> document=({title: 'MongoDB',
by: 'cc',
url: 'www',
tags: ['mongodb', 'database', 'NoSQL'],
});
(5)再执行插入操作
db.test.insert(document)
(二)查询文档
(1)db.collection.find()
#默认查找所有文档
注意:find()返回的是一个数组,即可以按索引查找
db.test.find()[0]
db.collection.find( {条件1,条件2 } )
#条件查询(且)
db.test.find({_id:'1'})
(2)db.collection.findOne()
#查询符合条件的第一个文档
注意:返回的是文档对象
(3)db.collection.find( { } ).函数
skip()跳过指定数量数据
lilmit()限制每页显示的条数
,。
db.collection.find( { } ).count() #文档数
db.collection.find( { } ).length() #同上
db.qq1.find().skip(10).limit(10) #跳过前十条查询接下来的十条
附条件查询语句
如查找num大于200,小于300的文档
db.test.find({num:{$gt:200,$lt:300}});
(三)修改文档
(1)db.collection.update( { 查询对象和属性 } ,{ 替换对象和属性})
#后者的文档,会替换前者查询到的文档所有内容
只对查询到的第一个文档有用
db.test.update({
_id:'1'},
{name:'5',
home:'2'
})
(2)db.collection.save( { 替换内容})
#替换集合中所有内容
(3)db.test.replaceOne({name:“cgp”},{name:“cgp240”})
db.test.replaceMany({name:“cgp”},{name:“cgp240”})
替换指定内容
修改指定对象或属性,使用“修改操作符”:
(1)$set
注意如果指定对象不存在,将添加新对象,update()默认只修改匹配的第一个文档,同时修改多个需要updateMany()
db.test.update({
查询对象},
{$set{
指定对象替换
}}) #不能用于添加属性
#删除指定对象$unset
db.test.update({
查询对象},
{$unset{
指定对象
}})
(2)$push:可添加
$addToset:不添加已有属性
向数组中添加属性
>{ "_id" : ObjectId("5e8d7a48315dd25b1a6d92c5"),
"name" :{ "test" : [ 1, 2, 3, 4] },
"home" : "湖南" }
>db.test.update({
home:"湖南"},
{$push:{"name.test":5
}})
(3)Mongodb的文档属性可以是一个文档
当文档的属性是一个文档时,这个文档叫内嵌文档
db.test.update({
name:"240"},
{$set:{name:{"ming":"陈哥"}
}});
内嵌文档查询方式:db.xxx.find({“第一对象.第二对象”:“属性”})
db.test.find({"name.ming":"陈哥"})
(四)删除文档
db.collection.remove({ })
#默认删除符合条件的所有文档
db.collection.remove({ },true)
#删除符合条件的第一个文档
db.collection.deleteOne({ })
#删除符合条件的第一个文档
db.collection.deleteMany({ })
#删除符合条件的所有文档
清空集合
db.collection.drop()