2013-02-23 26 views
1

这是MongoDB的mongoskin上的单个查询或多个查询mongoskin?

{cod_com:'WWWOAN', 
    cod_prod[{prod:'proda',info:'hola mundo'},{prod:'pacda',info:'hola mundo'},{prod:'prcdb',info:'hola mundo'}] 
} 
{cod_com:'WWWOA2', 
    cod_prod[{prod:'prdda',info:'hola mundo'},{ccod:'prcda',info:'hola mundo'}] 
} 
{cod_com:'WWWOA1', 
    cod_prod[{prod:'prcda',info:'hola mundo'},{aaad:'prcda',info:'hola mundo'}] 
} 

我必须得到cod_prod变量内的信息...所以用两个步骤

工作IM首先我查询cod_prod的所有者

db.collection.findOne({cod_com:'WWWOA1'}); 

如果存在,我查询cod_prod,我需要

db.collection.findOne({'cod_prod.prod':'prcda'}); 

所以基本上两次查询,首先是对产品的所有者,第二个产品的信息即时搜索...

问题是,有什么方法可以直接搜索产品? ??

我不能用这个......

db.collection.findOne({'cod_prod.prod':'prcda'}); 

因为业主型动物具有相同的产品......首先,我得到了业主和第二我得到的产品....

任何人有更好的aproach?或以不同的方式获取信息? TNX

回答

1

如果查询是这样的:

db.collection.findOne({'cod_com':'WWOA1', 'cod_prod.prod':'prcda'}); 

你应该得到你想要的结果。

+0

如果我想得到包含'cod_prod.prod'的'cod_com':'prcda',我怎么能得到这个信息...所有者信息 – andrescabana86 2013-02-24 00:58:54

+0

查询没有给我数组...给我所有的文件我只需要信息...不是整个文档 – andrescabana86 2013-02-24 03:14:48

+1

默认情况下查询总是返回完整的文档。您可以使用$ elemMatch投影算子来获取第一个匹配的数组元素。 – 2013-02-25 06:55:08