MongoDB联合查询 -摘自网络

1、简单手工关联

首先将结果查询出来放到一个变量里面,然后再查询

u = db.user.findOne({author:"wangwenlong"});

for(var p = db.postings.find({author:u.author});p.hasNext;){

printjson(p.next().title);

}

2、DBRef方式关联

例子:

步骤1 取得当前用户信息

db.user.insert({name:"wangwenlong"})

u1 = db.user.find({name:"wangwenlong"})[0]

步骤2 发帖子并做关联

db.postings.insert({"title":"Hello MongoDB!"},users:[new DBRef(‘users‘,u1._id)])

db.postings.insert({"title":"Hello China!"},users:[new DBRef(‘users‘,u1._id)])

步骤3 通知贴子茶轴用户信息

db.postings.find({title:"Hello China!"})[0].users[0].fetch()

时间: 2024-08-29 16:41:06

MongoDB联合查询 -摘自网络的相关文章

Mongodb联合查询

Mongodb使用联合查询的重点需要添加@DBref  这样的话不会将整个文档保存,只会保存关联集合的id package com.java.web; import java.util.List; import org.mongodb.framework.pojo.GeneralBean; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core

mongodb 新建用户 -摘自网络

随着版本的更新,对在使用mongodb的业务也进行了版本升级,但是在drop掉一个数据库时,问题来了,原来的用户随着删除库也被删除掉,但是再想通过原来的语法db.addUser()添加,一直报错,提示用db.createUser()命令创建. 首先如果在除admin库之外的用户通过db.addUser()添加是不会成功的. 我删除了原admin库的root用户,通过db.createUser()创建: db.createUser( { user:"root", pwd:"ro

Spring DATA MongoDB @DBref查询,or和and联合查询

@DBref文档关联,在按该类型查询的时候,在字段名后加上关联表的字段名即可,如: Criteria.where("bloggroup.$id"), $id代表关联表的oid字段. or和and联合查询 比如查询 (A = 1 and b = 2 )or (A = 3 and b =4),or的数量不确定, 那么采用定义一个Criteria数组,将条件组记入数组中,然后将数组指定给orCriteria方法. @Override public List<Blog> find(

SQL 阻塞(摘自网络)

/* 所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源, 造成这些会话发出的请求进入等待的状态.SQL Server 默认会让被阻塞的请求无限期地一直等待, 直到原来的事务释放相关的锁,或直到它超时 (根据 SET LOCK_TIMEOUT ).服务器关闭. 进程被杀死.一般的系统中,偶尔有短时间的阻塞是正常且合理的:但若设计不良的程序,就可能导致长时间的阻塞, 这样就不必要地锁定了资源,而且阻塞了其他会话欲读取或更新的需求.遇到这种情况,可能就需要手工排除

Oracle-11:联合查询

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 联合查询的实际上的意义就是从俩个结果集中拿有特定联系的结果封装为一个结果集 数据库脚本给放一份,供测试使用 create table DEPT ( deptno NUMBER(2) not null, dname VARCHAR2(20), loc VARCHAR2(13) ); alter table DEPT add constraint PK_DEPT primary key (DEPTNO); cr

mongodb 模糊查询以及$type使用

mongodb 模糊查询以及$type使用 2012-09-11 14:13:30|  分类: mongodb |  标签: |举报 |字号大中小 订阅 最近有一监控业务,由于数据采集到非数字内容,导致监控图表无法正常显示,所以要找出这部分数据,进行删除,然后开发员从源头更正插入数据库的数据,不再产生非数字内容. 下面举一个例子: 建立测试数据: for(i=1;i<=100;i++){db.test.insert({id:i,content:"test content",nam

数据库之联合查询和连接查询

http://blog.csdn.net/memgxingfeixiang/article/details/52765208 1.JOIN和UNION区别join 是两张表做交连后里面条件相同的部分记录产生一个记录集,union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集. JOIN用于按照ON条件联接两个表,主要有四种:INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行.我理解的是只要记录不符合ON条件,就不会显示在结果集

MySQL的查询,子查询,联结查询,联合查询

一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二.子查询1.where 子查询SELECT * FROM tb1 WHERE cat_id IN (SELECT max(id) FROM tb2 GROUP BY cat_id); 2.from 子查询SELECT t2_id FROM (SELECT t2_id FROM tb2 ORDER BY t2_id DESC); 3.exists

两个表联合查询获取聊天表中用户最新的一条聊天数据

一个用户表,一个聊天记录表,两个表联合查询获取聊天表中用户最新的一条聊天数据 select c.contentfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as content,(select c.statusfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as status from users as a, s