$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. 咬文嚼图式的介绍二叉树、B树/B-树

    前言 因为本人天资愚钝,所以总喜欢将抽象化的事务具象化表达.对于各类眼花缭乱的树,只需要认知到它们只是一种数据结构,类似数组,切片,列表,映射等这些耳熟能详的词汇.对于一个数据结构而言,无非就是增删改 ...

  2. C# WinForm遍历窗体控件的3种方法

    1.循环遍历 private void GetControls(Control fatherControl) { Control.ControlCollection sonControls = fat ...

  3. Fiddler 使用fiddler无法抓取苹果手机https请求问题解决方案

    使用fiddler无法抓取苹果手机https请求问题解决方案 by:授客 QQ:1033553122   测试环境 Win10 Fiddle4 IPhone6s 问题描述 使用fiddler抓取IPh ...

  4. DSCL:已开源,北京大学提出解耦对比损失 | AAAI 2024

    监督对比损失(SCL)在视觉表征学习中很流行.但在长尾识别场景中,由于每类样本数量不平衡,对两类正样本进行同等对待会导致类内距离的优化出现偏差.此外,SCL忽略了负样本之间的相似关系的语义线索.为了提 ...

  5. java中使用jdbc连接数据库操作

    先贴代码,在做说明 import java.sql.*; import java.util.ArrayList; import java.util.List; public class Conn { ...

  6. 这才是 PHP 高性能框架 Workerman 的立命之本

    大家好,我是码农先森. 在这个大家都崇尚高性能的时代,程序员的谈笑间句句都离不开高性能,仿佛嘴角边不挂着「高性能」三个字都会显得自己很 Low,其中众所皆知的 Nginx 就是高性能的代表.有些朋友可 ...

  7. 【H5】10 嵌入技术

    到目前为止,您应该掌握了将图像.视频和音频嵌入到网页上的诀窍了. 此刻,让我们继续深入学习,来看一些能让您在网页中嵌入各种内容类型的元素: <iframe>, <embed>  ...

  8. 【SpringBoot】02 概述

    [目标] - 什么是SpringBoot? 并不是新技术,只是一个Spring的加强 解脱XML配置,增加了新的注解,但是并不是新的内容 - 新型配置文件技术 YAML - 自动装配原理[了解即可,不 ...

  9. CyberDog测试视频 —— 【开箱】小米"限量"机器狗!被我玩坏了...

    地址: https://www.youtube.com/watch?v=3ntAhy3thXM PS. 现在的智能机器人其实真的没有人们想象中的那么智能.感觉现在的智能机器人最为有用的功能一个是倒地自 ...

  10. gym.ObservationWrapper使用时的注意点——reset和step函数可以覆盖observation函数

    记录一个刚学习到的gym使用的点,就是gym.ObservationWrapper使用时的注意点--reset和step函数可以覆盖observation函数. 给出代码: import gym cl ...