java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

本文实例讲述了MongoDB增删查改操作。分享给大家供大家参考,具体如下:

MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的。

Insert操作:

单条插入

var single={"name":"mei","age":22}

db.user.insert(single);

循环插入

var single={"name":"tinyphp","num":28,}

for(var i=0;i<5;i++){single.num=i;db.user.insert(single);}

Find查询操作:

db.集合名.find(query,fields,limit,skip)

query,指明查询条件,相当于SQL中的where语句

例子:

db.student.find({"name":"joe","age":{$lt:22}})

fields用于字段映射,语法格式:{field:0}或{field:1}

例子:

db.student.find({"age":{$lt:22},{"_id":0,"name":1}})

表示查询结果包含name字段,不包含_id字段

limit限制查询结果集的文档数量,指定查询返回结果数量的上限

例子:

db.student.find({"name":"joe"},{"name":1,"age":1},5)

skip跳过一定数量的结果,设置第一条返回文档的偏移量

例子:

db.student.find({"name":"joe"},{"name":1,"age":1},5,20)

表示跳过前20条文档

排序:-1降序,1升序

db.user.findOne()

注意事项:MongoDB不支持多集合间的连接查询,find函数一次查询只针对一个集合

比较查询操作符:

比较操作符

对应

参数

$eq和$ne

=和!=

{:{$eq:}}

$gt和$gte

>和>=

{:{$gt:}}

$lt和$lte

{:{$lt:}}

$in和$nin

包含 和 不包含

{:{$in:[,]}}

例子:

/*find age >22*/

db.user.find({"age":{$gt:22}})

逻辑查询操作符:

逻辑操作符

对应

参数

$and

{$and:[{条件1},..,{条件N}]}

db.user.find({$and:[{"name":"tinyphp","num":3}]}) 等同 db.user.find({"name":"tinyphp","num":3})

$or

{$or:[{条件1},..,{条件N}]}

$nor

{$nor:[{条件1},..,{条件N}]}

$not

取反

{field:{$not:{条件}}}

元素操作符:

元素操作符

作用

$exists

按照字段是否存在来查询文档

{field:{$exists:布尔值}}

db.user.find({"age":{$exists:true}}) 查询存在age字段的文档

$type

选择字段值为指定BSON数据类型编号的文档

正则匹配

/* find name 开头为j的*/

db.user.find({"name":/^j/})

$where查询

可以结合javascript进行查询,当javascript返回true时,才返回当前文档

db.user.find({$where:function(){return this.name=='jack'}})

查询时,$where操作符不能使用索引,每个文档需要从BSON对象转换成javascript对象后,才可以通过$where表达式运行,因此比常规查询要慢,一般要避免使用$where查询。

还可以存起来用:

var list=db.user.find();

list.forEach(function(x){

print(x.name);

})

Update操作:

整体更新

var model=db.user.findOne({"name":"jack"})

model.age=44

db.user.update({"name":"jack"},model)

局部更新

$inc修改器

/*update bing age+30 */

db.user.update({"name":"bing"},{$inc:{"age":30}})

$set修改器

/*update bing age=10 */

db.user.update({"name":"bing"},{$set:{"age":10}})

update的true参数

若update最后参数加true则修改条件不存在时,自动增加一条如:

db.user.update({"name":"Mark"},{$set:{"age":10}},true)

会自动增加一条记录:name为mark,age为10

如果加了true,而且条件又满足则会批量修改,不然就默认只更新第一条

Remove操作:

db.person.remove({"name":"jack"})

希望本文所述对大家MongoDB数据库程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中什么是task_20171018java总结——Spring任务调度task:scheduled-tasks

从认识eclipse开始到现在&#xff0c;学习编程已经接近8个月的时间&#xff0c;从什么都不懂&#xff0c;到现在慢慢一点点学习编程&#xff0c;自己在不断地进步&#xff0c;要学习的地方还有很多。自己也从这个平台收获到了很多知识&#xff0c;我也希望在这个博客上面记录自…

java155apk_【原创】浅谈 Android APK定点爆破

[Java] 纯文本查看 复制代码.class public Lcom/mayor/codeSig/CodeSigWindow;.super Landroid/app/Activity;.source "CodeSigWindow.java"# instance fields.field private csig:Ljava/lang/String;.field editText:Landroid/widget/EditText;.field private isNum…

python包含多个元组的元组_如何在python中将多个”列出的”元组连接成一个元组?...

在python中&#xff0c;关于这个问题的答案很少&#xff0c;如何将一个元组列表连接到一个列表中&#xff1f;&#xff0c;如何在python中合并两个元组&#xff1f;&#xff0c;如何在python中合并任意数量的元组&#xff1f;所有的答案都引用了元组列表&#xff0c;所以提供的…

centos6.5 mysql主从_CentosMysql主从备份

1、主库设置my.cnfserver_id 2 必须唯一binlog-do-db abo-assist 备份的数据库log-binmysql-bin 开启binlog创建同步账号并授权grant replication slave on *.* to replication% identified by 123456;2、从库server_id 10 必须唯一3、开启主从同步(从库上操作)mysql> st…

java socket ftp登录_基于java socket的简单FTP功能实现

实现FTP的一些功能&#xff0c;如上传文件&#xff0c;下载文件&#xff0c;显示目录&#xff0c;改变目录&#xff0c;退出等功能import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;i…

java内嵌excel_如何在Excel中嵌入URL中的图像?

我试图从URL中提取图像并将其嵌入Excel中 .我的Excel表格很简单&#xff1a;它包含2列 .第1列具有图像URL . 在第2列中&#xff0c;我想嵌入图像 . 我使用以下代码 . 它在第一行工作得非常好&#xff0c;我在本地机器上保存了图像并给出了路径&#xff0c;但是当尝试直接从URL嵌…

java减治法深度优先查找_排序|减治法实现排序

总结一下排序嘿;)有插入排序和拓扑排序。1.插入排序/直接插入排序假设对较小的数组A[0...n-2]已经排好序了&#xff0c;然后把A[n-1]找到一个合适的位置插进去。一般来说是从右向左扫描这个有序的数组&#xff0c;直到遇到第一个小于A[n-1]的元素&#xff0c;然后把A[n-1]插在这…

linux服务器安装php7_CentOS 7 下 PHP 7.1.12 安装配置

Linux系统&#xff1a;CentOS 7记录在CentOS 7 下 PHP 7.1.12 安装配置的过程。先安装相关依赖包yum installpcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel e2fsprogs e2fsprogs-dev…

java试讲题目,常见的Java面试题汇总

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关于集合1、Java中的集合及其继承关系关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此.2、poll()方法和remove()方法区别&#xff1f;poll() 和 remove() 都是从队列中取出一个元素&…

快钱接口php,快钱支付接口

1.下载快钱的demo代码和一个证书包&#xff0c;还有 人民币网关自助接入接口文档2.生成自己的证书2.0.安装 Win32OpenSSL_Light-0_9_8k.exe打开openssl.exe,2.1. 输入genrsa -out private-rsa.key 1024&#xff0c;按enter即可。2.2 输入req -new -x509 -key private-rsa.key…

php 二维数组排序函数,php自定义函数实现二维数组排序功能

本文实例讲述了php自定义函数实现二维数组排序功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;/**作用: 二维数组排序函数,支持多键名排序* 返回: 排序好的数组* 使用: array_msort(数组,需要排序的键名,排序方式);* 例子: array_msort($cflist,"chapter_ord…

其他机器无法访问php,PHP 局域网其他机器无法访问的问题

刚安装wamp以后本地访问localhost或者127.0.0.1可以访问&#xff0c;但是如果局域网内其他电脑访问则出现403错误。这大都是因为服务器配置不正确的原因&#xff0c;wamp安装后默认是禁止其他机器访问的。1&#xff0c;首先确定关闭了防火墙并且80端口没有被占用2&#xff0c;修…

php sql查询占位符,使用命名占位符时PHP / SQL插入错误

我有以下PHP PDO语句&#xff1a;$STH $this->_db->prepare("INSERT INTO UserDetails (FirstName, LastName,Address, City, County, PostCode, Phone, Mobile, Sex, DOB,FundraisingAim, WeeksAim, LengthsAim, HearAboutID,MotivationID, WelcomePackID, Contac…

linux+守护进程+php,【转载】Linux 守护进程的编程方法

【转载】Linux 守护进程的编程方法原文见&#xff1a;http://www.linuxdevelop.org/tingxx/show.php?tablec&id3Linux 守护进程的编程方法作者: 北京工业大学 小胡守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发…

翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】

本文实例讲述了php各种常见经典算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;冒泡排序算法public function test() {$arr array(43, 54, 62, 21, 66, 32, 78, 36, 76, 39);var_dump($arr);echo ;$arr $this->bubblesort($arr);var_dump($arr);}public func…

php文件上传详解,PHP文件上传实例详解!!!

这篇文章主要介绍了PHP文件上传实例代码&#xff0c;需要的朋友可以参考下首先来看下上传部分的表单代码&#xff1a;文件&#xff1a; 这里有几个要注意的地方&#xff0c;首先看这句&#xff0c;这里我们采用POST方法&#xff0c;个别浏览器还支持PUT方法&#xff0c;当然这需…

php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...

[TOC]手册地址:before_insert(新增之前的操作)要实现的功能上传原图片,在新增数据之前生成三张缩略图片,然后再插入数据添加商品基本信息及通过后置钩子上传商品主图思路控制器里调用模型的save()方法保存数据模型里的用前置勾子beforeInsert()保存之前把上传原图片先成三张缩略…

java下标越界的三种处理方式,数组下标越界,该怎么解决

数组下标越界package import_csv;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.sql.Connect…

commvault备份mysql,备份MySQL数据库的4种方式

备份MySQL数据库的4种方式前言我们试着想一想, 在生产环境中什么最重要&#xff1f;如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装,但是如果数据没了呢&#xff1f;这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要.那么我…

php $app-run(),Thinkphp 5.x 应用启动 App::run()

在上文加载完配置等一系列工作之后&#xff0c;进入App::run()&#xff0c;在run()方法中&#xff0c;首先通过自动加载机制拿到 Request 的一个实例接着 $config self::initCommon()初始化公共配置&#xff0c;先是 addNamespace 添加app当前所在的命名空间&#xff0c;然后 …