2013-04-01 95 views
0

我想查詢一個嵌入式的收集和達到以下條件:查詢嵌入式收藏MongoDB的附加條件(AND和OR)

A && C || B && C || A && D || B && D

從我的理解指的是一些教程,查詢應該是像這樣:

對於,

情形1 OR([情況2和情形3]或[情形4 AND case5])

查詢:

{情況1,[{情況2,情形3},{情形4,case5}]}

我想下面的查詢,但似乎不工作。請幫忙。

db.hg19_refgene_47.find({ 

       "_id.c" : 1, 
      [ { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       }, 
       { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       }, 
       { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       } 
      ] 

     }) 

回答

1

你可以嘗試使用$or操作:

db.hg19_refgene_47.find({ 
    $or: [ 
    "_id.c" : 1, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    }, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    }, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    } 
    ] 
}) 
0

使用其作品一樣SQL或條件或操作者。一個重要的事情要記住,當你想和條件哪個子文檔總是使用elemMatch運算符其他明智的你的查詢將無法按預期工作