2017-09-05 18 views
-1

MongoDBのクエリの質問:MongoDBの単純なクエリ

parent = { 
    "_id": ObjectId("1"), 
    "children": [ObjectId("11"), ObjectId("12"), ObjectId("13")] 
} 

私は指定されたidが子配列内の任意のと一致した場合、全体の親文書を返すようにしたいです。

> db.parent.find({"children": ObjectId("11")}) 

は、あなたが最初に必要なもの

TIA、 エリック

答えて

0

getあなたdbを返しません。これは、ノードが、あなたが何を言ってるのかdb知ることができます。私は単純な_db = db.get('parent')でこれを行います。 今度はObjectIdでデータベースを検索してみることができます。 ObjectIdでは、Stringなので、11を検索することができます。ただ11の検索が機能しない場合は

_db = db.get('parent') 

_db.find({'children': '11'}, function(err, doc){ 
    if(!err){ 
     ... 
     Docs will return the whole query 
    }else{ 
     ... 
    } 
} 

場合、ObjectIdを使用してみてください。

Mongotron dbにObjectIdを追加しようとしたとき、Error : Argument passed in must be a single String of 12 bytes or a string of 24 hex characters Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters at new ObjectIDで返されました。あなたのデータはdbにありますか?

+0

私は子供のコレクションのIDが肯定的です。また、今すぐmongoコマンドラインを使用して、ノードコードを探していません。 – emiles

+0

'db.parent.find({'children': '11'})'を試したことがありますか? –

+0

申し訳ありませんが、私の問題を考え出し、子供は別のコレクション内の配列です。したがって、次のようになりました。 – emiles