$push 修饰符:用于往数组中追加元素

 db.workmates.update({name:'xiaowang'},{$push:{interseta:"PHP"}}) 
 
$ne 修饰符:如果 选择字段的值不等于给定的值或者该字段不存在
selects the documents where the value of the field is not equal to the specified value. This includes documents that do not contain the field.
> db.c1.find()
{ "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }
{ "_id" : ObjectId("4fb4af89afa87dc1bed94331"), "age" : 8, "length_1" : 30 }
{ "_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 } // 查询age 的值不等于7 的数据
> db.c1.find( { age : { $ne : 7 } } );
{ "_id" : ObjectId("4fb4af89afa87dc1bed94331"), "age" : 8, "length_1" : 30 }
{ "_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 }

 $addToSet 修饰符:向数组中添加一个值,如果该值存在,则不进行任何操作。

The $addToSet operator adds a value to an array unless the value is already present, in which case $addToSet does nothing to that array.

> db.c1.find()
{ _id: 1, letters: ["a", "b"] } // 执行$addToSet
db.c1.update({_id:1},{$addToSet:{
letters:"c"
}})

$each 修饰符:向数组中批量添加值

可以结合$addToSet 和 $push 使用

db.students.update(
{ name: "joe" },
{ $push: { scores: { $each: [ 90, 92, 85 ] } } }
)
 
数组定位修改
修改数组索引为2的值为"code"
db.workmates.update({name:'xiaowang'},{$set:{"interset.2":"code"}})

runCommand

您可以使用 MongoDatabase.runCommand() 方法运行所有原始数据库操作,并返回执行结果

findAndModify

修改并返回单个文档,如果需要返回修改后的,需要指定new 为true

var myModify = {
findAndModify: "workmates",
query: { name: "xiaowang" },
update:{$set:{age:10}},
new:true, //返回修改后的值
fields:{name:true,age:true} // 需要返回的值
}; var result = db.runCommand(myModify);

查询操作

// 虚拟的文档数据:
var db = connect("company");
function WorkMate(name, age, skill) {
this.name = name;
this.age = age;
this.skill = skill;
} var nameList = ["慎", "嘉文四世", "赵信", "德莱厄斯", "易", "贾克斯"];
var ageList = [20, 30, 40, 33, 22, 55];
var skillList = [
["奥义!暮临", "奥义!魂佑", "奥义!影缚", "秘奥义!慈悲度魂落"],
["巨龙撞击", "黄金圣盾", "德玛西亚军旗", "天崩地裂"],
["三重爪击", "狂战怒吼", "无畏冲锋", "新月横扫"],
["大杀四方", "致残打击", "无情铁手", "诺克萨斯断头台"],
["阿尔法突袭", "冥想", "无极剑道", "高原血统"],
["跳斩", "蓄力一击", "反击风暴", "宗师之威"],
]; var start = 6;
var heros = []
while (start-- > 0) {
heros.push(
new WorkMate(nameList[start],ageList[start],skillList[start])
)
} db.heros.insert(heros); print('INSERT SUCCESS');
// 查询操作

var db = connect("company");

// 精确查询
db.heros.find({
name:'贾克斯'
}); // 查询年龄大于30 小于等于50的 db.heros.find({
age:{$gt:30,$lte:50}
}) // 查询年龄不等于33的
db.heros.find({
age:{$ne:33},
}) // 查询名称不等于赵信的
db.heros.find({
name:{$ne:"赵信"},
},{
name:1
}) // 从查询结果取出自己需要的字段
db.heros.find({
name:'贾克斯'
},{
name:1,
age:1,
_id:0
});

Mongodb入门2的更多相关文章

  1. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

  2. MongoDB入门三:MongoDB shell

    MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...

  3. MongoDB 入门之查询(find)

    MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...

  4. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...

  5. mongodb入门教程二

    title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...

  6. mongodb入门教程

    title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...

  7. MongoDb 入门教程

    MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...

  8. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  9. mongodb入门很简单(3)

     ##简单的mongodb入门命令## 1.show dbs;      //查看当前数据库 2.use databaseName;         //选库 3.show tables/collec ...

  10. MongoDB入门实践

    MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...

随机推荐

  1. java 高效递归查询树 find_in_set 处理递归树

    建表语句 DROP TABLE IF EXISTS `sys_dept`; CREATE TABLE `sys_dept` ( `id` bigint(20) NOT NULL AUTO_INCREM ...

  2. vue3 'alex' is defined but never used

    解决方法 在package.json中的rules下加入 "no-unused-vars":"off" 即可

  3. Spring AOP面向切面编程核心概念

    横切关注点 对那些方法进行拦截,拦截后怎么处理,这些就叫横切关注点 比如:权限认证.日志.事务 通知 Advice 在特定的切入点上执行的增强处理,有5种通知 用途:记录日志.控制事务.提前编写好通用 ...

  4. SpringBoot注解配置文件映射属性和实体类

    配置文件加载 方式一 Controller上面配置@PropertySource({"classpath:pay.properties"}) 添加属性@Value("wx ...

  5. 全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装

    全网最适合入门的面向对象编程教程:06 类和对象的 Python 实现-自定义类的数据封装 摘要: 本文我们主要介绍了数据封装的基本概念和特性,如何设置自定义类的私有属性和私有方法,protect 属 ...

  6. API引用在Element UI (Vue 2)和Element Plus (Vue 3)中的不同

    API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需要更新你的自定义样式. 事件名和属性名变化: 某些组件的事件名和属性名发生了变化,需要检查 Element Plus 文档 以了解详细信 ...

  7. Python 标准类库-因特网数据处理之Base64数据编码

    该模块提供将二进制数据编码为可打印ASCII字符并将这种编码解码回二进制数据的功能.它为RFC 3548中指定的编码提供编码和解码功能.定义了Base16.Base32和Base64算法,以及事实上的 ...

  8. Django 用户认证系统使用总结

    Django用户认证系统使用总结 by:授客 QQ:1033553122 测试环境 Win7 Django 1.11   使用Django认证系统 本文按默认配置讲解Django认证系统的用法.如果默 ...

  9. bloom效果

    搜索 复制

  10. html2canvas截取专题图(包含地图)

    html2canvas截取专题图(包含地图) 问题:html2canvas截取地图时地图空白,报错: Unable to clone WebGL context as it has preserveD ...