跳至主要內容

MongoDB文档操作

soulballad数据库MongoDBMongoDB约 718 字大约 2 分钟

文档操作

1.数据库操作

1.1 进入 MongoDB

在 D:\MongoDB\bin 目录下打开 cmd

mongo.exe

1.2 使用数据库

语法解释备注
use school切换到 school 数据库下如果此数据库存在,则切换到此数据库下,如果此数据库还不存在也可以切过来,但是并不能立刻创建数据库
show dbs查看所有数据库我们刚创建的数据库 school 如果不在列表内, 要显示它,我们需要向 school 数据库插入一些数据 db.students.insert({name:'zfpx',age:1})
db查看当前使用的数据库db 代表的是当前数据库 也就是 school 这个数据库
db.dropDatabase()删除数据库

2.集合操作

2..1 查看集合帮助

db.students.help()

2..2 查看数据库下的集合

show collections

2.2 创建集合

2.2.1 创建一个空集合

db.createCollection(collection_Name)

collection_Name 集合的名称

2.2.2 创建集合并插入一个文档

  • collection_Name 集合的名称
  • document 要插入的文档
db.collection_Name.insert(document)

3.插入文档

3.1 insert

db.collection_name.insert(document);
  • collection_name 集合的名字

  • document 插入的文档

    每当插入一条新文档的时候 mongodb 会自动为此文档生成一个_id​属性,_id 一定是唯一的,用来唯一标识一个文档_id 也可以直接指定,但如果数据库中此集合已经有此_id 的话插入会失败。

    db.students.insert({_id:1,name:'xiaoming',age:1})
    WriteResult({'nInserted':1})
    db.students.insert({_id:1,name:'xiaoming',age:1})
    

3.2 save

db.collection_name.save(document)
  • collection_name 集合的名字

  • document 插入的文档

    注:如果不指定_id 字段,save()方法类似于 insert()方法。如果指定_id 字段,则会更新该_id 的数据。

db.students.save({_id:1,name:'xiaoming',age:1})
WriteResult({'nMatched':1},"nUpserted":0,"nModified":0)
db.students.save({_id:1,name:'xiaoming',age:100})
WriteResult({'nMatched':1,'nUpserted':0,'nModified':1})

4.更新文档

4.1 语法

db.collection.update(
   <query>,
   <updateObj>,
   {
     upsert: <boolean>,
     multi: <boolean>
   }
)

4.2 参数

  • query 查询条件,指定要更新符合哪些条件的文档
  • update 更新后的对象或指定一些更新的操作符
    • $set 直接指定更新后的值
    • $inc 在原基础上累加
  • upset 可选,这个参数的意思是,如果不存在符合条件的记录时是否插入 updateObj,默认是 false,不插入。
  • multi 可选,mongodb 默认只更新找到第一条记录,如果这个参数为 true,就更新所有符合条件的记录。

4.3 upsert

students​集合中数据中name​是 zfpx2 的值修改为 zfpx22

db.students.insert({_id:1,name:'zfpx1'});
WriteResult({'nInserted':1})
db.students.update({_id:2},{name:'zfpx2'},{upsert:true});
WriteResult({'nInserted':0,'nUpserted':1,'nModified':0,'_id':2})

4.4 multi

  • 如果有多条 name 是 zfpx2 的数据只更新一条,如果想全部更新需要指定{multi:true}​的参数
db.students.update({name:'zfpx2'},{$set:{age:10},{multi:true}});
WriteResult({"nMatched":2},"nUpserted":0,"nModified":2);
上次编辑于:
贡献者: soulballad