• MongoDB学习之路(四)


    ##MongoDB插入文档

    MongoDB使用insert()或save()方法向集合中插入文档。

    db.COLLECTION_NAME.insert(document); ###For instance

    >db.learn.insert({
    title:'learnToInsert',
    description:'SimpleFunction'
    });
    

    上述learn为集合名字,根据自己的实际情况来改变。

    我们还可以将数据定义为一个变量,如下所示:

    >document=({
    title:'learnToInsert',
    description:'SimpleFunction'
    });
    
    //执行插入操作
    db.learn.insert(document);
    WriteResult({"nInserted":1})
    >
    

    插入文档也可以使用db.learn.save(document)命令。如果不指定_id字段,save()方法类似于insert()方法。如果指定_id字段,则会更新该_id数据。

    ##MongoDB更新文档

    MongoDB使用update()和save()方法来更新集合中的文档。

    ###update()方法 update()方法用于更新已存在的文档。语法格式如下:

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

    参数说明:

    • query:update的查询条件,类似于sql update查询内where后面的条件。
    • update:update的对象和一些更新操作符(如$,$inc...),可以理解为sql update查询内set后面的内容。
    • upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew:true为插入,默认是false,不插入。
    • multi:可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件差出来的多条记录全部更新。
    • writeConcern:可选,抛出异常的级别。

    ###For instance

    db.learn.update({'title':'learnToInsert'},{$set:{'title':'learnToInsertAndUpdate'}});
    WriteResult({"nMatched":1, "nUpserted": 0, "nModified" :1 });
    

    ##save()方法

    save()方法通过传入的文档来替换已有的文档。语法格式如下:

    db.learn.save(
    	<document>,
    	{
    		writeConcern:<document>
    	}
    )
    

    参数说明:

    • document:文档数据
    • writeConcern:可选, 抛出异常的级别。

    save()方法直接根据ObjectId来进行修改即可。

    ##MongoDB删除文档

    MongoDB remove()函数是用来移除集合中的数据。

    MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这时一个比较好的习惯。

    db.collection.remove(
    	<query>,
    	{
    		justOne:<boolean>,
    		writeConcern:<document>
    	}
    )
    

    参数说明:

    • query:(可选)删除的文档的条件。
    • justOne:(可选)如果设为true或1,则只删除一个文档。
    • writeConcern:(可选)抛出异常的级别。

    ##MongoDB查询文档

    MongoDB查询文档使用find()方法。

    find()方法以非结构化的方式来显示所有文档。

    语法

    db.collection.find(query, projection)

    • query:可选,使用查询操作符指定查询条件
    • projection:可选,使用投影操作符指定返回的键。查询时返回文档中所有的键值,只需省略该参数即可(默认省略)

    如果需要以整齐的方式来读取数据,可以使用pretty()方法,语法如下:

    db.collection.find().pretty();

    pretty()方法以格式化的方式来显示所有文档。

    ##MongoDB与RDBMS Where语句比较

    操作 格式 范例 RDBMS中类似语句
    等于 {<key>:<value>} db.col.find({"somekey":"somevalue"}).pretty() where somekey = "somevalue"
    小于 {<key>:{$lt:<<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
    大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
    不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

    ##MongoDB AND 条件

    MongoDB的find()方法可以传入多个键(key),每个键可以由逗号隔开,及常规SQL的AND条件。

    语法如下:

    >db.col.find({key1 : value1, key2 : value2 } ).pretty

    ##MongoDB OR 条件

    MongoDB OR 条件语句使用了关键字$or。

    语法如下:

    >db.col.find(
    	{
    		$or[
    			{key1: value1},
    			{key2: value2}
    		]
    	}
    ).pretty()
    

    ##MongoDB 中AND和OR联合使用

    一般的SQL中where语句

    where name = "qiu" and (location = "jiangsu" or age < 25)

    与之对应的MongoDB语句

    >db.col.find({ "name": "qiu"
    	$or: [
    		{location : "jiangsu"},
    		{age : {$lt:25}}
    	]}).pretty();
    

    by 一枝猪

  • 相关阅读:
    希望多年以后的自己不再如此迷茫
    【转载】撒旦(Satan 4.2)勒索病毒最新变种加解密分析
    java单例模式
    关于double/float 两种基本类型精度丢失的总结
    关于ecplise中一些很实用的技巧
    安装SQL Server和卸载SQL Server步骤
    我进入部门的第一周
    mysql数据库在Linux和windows下免安装实现以及框架开发碰到的问题
    jenkins发布docker到mesos
    u盘作为git仓库,完成不同地方的代码同步
  • 原文地址:https://www.cnblogs.com/chunzhulovefeiyue/p/7244918.html
Copyright © 2020-2023  润新知