Mongodb入门2
$push 修饰符:用于往数组中追加元素
selects the documents where the value of thefieldis not equal to the specifiedvalue. This includes documents that do not contain thefield.
> 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
$addToSetoperator adds a value to an array unless the value is already present, in which case$addToSetdoes 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的更多相关文章
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
- mongodb入门教程
title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- MongoDB入门必读(概念与实战并重)
MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...
- mongodb入门很简单(3)
##简单的mongodb入门命令## 1.show dbs; //查看当前数据库 2.use databaseName; //选库 3.show tables/collec ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
随机推荐
- CF2B
非常恶心的dp题,测试数据也恶心,坑多,特别是0的坑 #include <iostream> #include <utility> #include <string> ...
- truncate table 与delete的区别
1.DELETE ・DML语言 ・可以回退 ・可以有条件的删除 DELETE FROM 表名 WHERE 条件2.TRUNCATE TABLE ・DDL语言 ・无法回退 ・默认所有的表内容都删除 ・删 ...
- workman和swoole区别和异同
swoole是使用C语言实现的socket通信框架,workerman则是使用纯php实现的socket框架,二者进程模型上也存在很多的不同. 先说下swoole的进程模型,看一下以下解析图 mast ...
- Vue查询传参
通过修改 getWK005 函数来实现这一点.这里的 query 参数就是发送 GET 请求时的查询参数.你可以将需要的条件作为 query 对象的属性传递进去.比如,如果你想要按照特定的条件查询信息 ...
- 美团VS饿了么,到底谁更胜一筹?
最近啊,收到一个粉丝的投稿,我发现他在美团和饿了么都去面试过. 这俩企业大家应该都经常用吧,咱点外卖的时候,我有时候就琢磨,到底他俩谁更厉害点. 今天咱们就瞅瞅,在面试这块儿谁更难一些. (目前都只有 ...
- SpringBoot全局异常处理及自定义异常
首先定义自定义返回类,如果自己项目中已经有了自定义返回类只需要将后面的代码做相应的修改即可: import io.swagger.annotations.ApiModelProperty; impor ...
- 【Vue】el-table 简易表格可筛选列
需求实现: 代码逻辑: 按钮控件: <el-popover placement="top-start"> <el-checkbox-group v-model=& ...
- 【MySQL】Navicat踩坑:Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation 'instr'
在Navicat客户端上面执行SQL报错 SQL语句: WITH RECURSIVE transfer (start_station, stop_station, stops, path) AS ( ...
- 【Java】Reflection 反射机制 03调用
调用属性,方法,构造器 属性调用 @Test public void fieldCall() throws NoSuchFieldException, IllegalAccessException, ...
- nginx+tomcat部署均衡+虚拟IP配置
一.配置java环境 更新数据源 sudo apt update 安装java sudo apt install openjdk-java-8-jdk 查看是否安装成功 java -version 二 ...