2016-06-17 1 views
2

を働いていません。のMongoDB:IDで見つけ、私は成功せずにMongoDBから<strong>ID</strong>で私のレコードをフィルタリングするために一生懸命しようとしている

 mycollection.find({_id:"57603891dcba0f7813102b3f"},{},{},function(err, docs) { 
    console.log("record"+docs); 
    docs.each(function(err, doc) { 
     if(doc) { 
     console.log("record"+doc); 
     } 
    }); 
    }); 

それで何が問題になっています:

{ 
    "_id": { 
     "$oid": "57603891dcba0f7813102b3f" 
    }, 
    "age": 10, 
    "name": "john", 
    "answer": "3", 
} 

マイスクリプトとして:問題は、私の記録は次のようになりMLAB$ OID

がでているのですか?任意のアイデアの人?

答えて

0

次のことを試してください: -

mycollection.find({"_id.$oid":"57603891dcba0f7813102b3f"},{},{},function(err, docs) { 
console.log("record"+docs); 
docs.each(function(err, doc) { 
    if(doc) { 
    console.log("record"+doc); 
    } 
}); 
    }); 
+0

まだMLab接続で動作していません –

6

スクリプトの問題は、あなたがのNode.jsを使用している場合のObjectIdの文字列

{ 
     "$oid": "57603891dcba0f7813102b3f" 
}, 

で通常の文字列"57603891dcba0f7813102b3f"を比較しようとしているということですここにあなたができること

1)mongodbパッケージからObjectId APIをインポートする

var ObjectId = require('mongodb').ObjectID; 

2)

mycollection.find({_id:ObjectId("57603891dcba0f7813102b3f")},{},{},function(err, docs) {...} 

はところで、titi23 @によって投稿答えはまた、働くあなたのクエリでのObjectIdに通常の文字列に変換します。しかし、私は、ObjectIdがコンバージョンにクリーンなアプローチを見つけます。

+0

これは私のローカルmongoDbインストールでは動作しますが、MLab接続では動作しません。私はまだ戻り値としてnullを持っています... –

+0

mLabインスタンスからサンプルデータを共有できますか? –

+0

サンプル文書は、私は疑問に示したものである:{ "_id":{ "$のOID": "57603891dcba0f7813102b3f" }、 "年齢":10、 "名前": "ジョン"、 」答えは ": "3"、 }。 MLABに挿入されたすべての新しい文書は、$ OIDでフォーマットされています。 –

1

このようにmLabで検索することができます。ローカルの開発のMongoDBサーバーで

{ 
    "_id": { 
     "$oid": "59b59b34852a9619b486634f" 
    } 
} 

しかし、あなたのjavascriptのコードがどうあるべき、

uId = ObjectId("59b59b34852a9619b486634f") 
User.findOne({"_id": uId}, function(err, user){ 
}); 
0

は、 "_id" はオブジェクトIDを使用して索引付けし、識別された( "....")。 MLABまたは任意のリモートのMongoDBサーバーに照会しながら、 たとえば、ローカルに照会したときに

{ "_id": ObjectID("....") , "name": ".......", "password" : "............"} 

を得ることができ、「_id」は「$のOID」として参照されます。あなたは私のようにしている場合たとえば、

{ "_id": { "$oid": "..........."} , "name": "......."} 

は、あなたがMLABでドキュメントの「_id」を編集し、MLABは、あなたがそのような行うことができませんが、後者でかつての記述を交換してみて、私はそれがだと思いますその制限の一部。それを試してみて、あなたが共有するための回避策を持っているかどうかを確認します。

関連する問題

 関連する問題