2017-11-25 12 views
0

文書を見つけるのに困っています。私は、この構造のコレクション"registosORS"を持っている:ノードMongo - 文書が見つかりません

{ 
    "_id" : ObjectId("5a1959d75e0b410558e515be"), 
    "sessao" : "1", 
    "proprioResponsavel" : "on", 
    "outroResponsavel" : "", 
    "relacao" : "", 
    "valorIndividualmente" : "1", 
    "valorInterpessoal" : "1", 
    "valorSocialmente" : "1", 
    "valorGlobalmente" : "1", 
    "cliente_id" : "5a1407c8099ca208e48170a5", 
    "email" : "[email protected]", 
    "data" : 1511610839374 
} 

そして私はcliente_id値で文書を見つけたいです。

すべてはうまくいきますが、"registosORS"コレクションクエリに入ると、結果はnullになります。

ClientesDAO.prototype.insereDadosOrs = function(dadosORS, date, callback){ 
    this._connection.open(function(err,mongoClient){ 
     mongoClient.collection('clientes', function(err,collection){ 
      collection.findOne({email:dadosORS.email}).then(function(result){ 

        var cliente_id = result._id; 
        dadosORS.data = date; 
        mongoClient.collection('registosORS', function(err,collection)      { 
        collection.insert(dadosORS); 

        dadosSessao = { 
         cliente: cliente_id, 
         data: dadosORS.data, 
         numero : dadosORS.sessao 
        } 

私はここでの問題であると考えている:

mongoClient.collection('registosORS', function(err,collection){ 
         collection.findOne({cliente_id:client_id, data:dadosORS.data}).then(function(result){ 
         console.log(result); 

結果はnullですが。私はどこで失敗しますか?

+0

私は 'client_id'と' dadosORS.data'の値があなたのコレクションに保存されている値に対応していないと思います。これらの値を確認しましたか? – Azuloo

+0

これらの値のconsole.logを作成した場合、cilente_id = 5a1407c8099ca208e48170a5 とdadosORS.data = 1511724182264(コレクションの新しいドキュメントとして更新されます)、最後のクエリの結果はnull – EFO

+0

混乱します私は自分の側でそれをチェックするので(もちろん別のデータで)、それはうまくいった。 'cliente_id'だけで結果をチェックしようとしましたか? – Azuloo

答えて

0

これを解決しましたか?

この部分の結果はどうなりますか?それはobjectIDの文字列ですか?

var cliente_id = result._id; 

それはオブジェクトIDの文字列を取得する必要がありますし、それがcliente_idのあなたの文字列と一致しません照会のために使用されている場合。 varはobjectIDとなります。これは、JSONに解析され、まあ、それはちょうど私の憶測ですobjectIDを最初

var cliente_id = result._id.toJSON().$oid 

を取るべきです。うまくいきたいです

+0

こんにちはdundun、それは解決されていないと私は答えがあなたのコメントに関連していると信じています。私はデバッグしようとしていますが、それは私にログを与えていません...私は置くべきでしょうか?それは何をするためのものか? – EFO

+0

私がしたとき--- var cliente_id = result._id.toJSON()。$ oid; ---それはclient_idが定義されていないと言う。 – EFO

+0

これは、var cliente_id = result._id.toJSON()を実行していた。好奇心のために、オブジェクト参照や文字列のみを保存する価値はありますか?違いはありますか? – EFO

0

ここに入力ミスがあるとします。cliente_id:client_idcliente_id:cliente_idである必要があります。

+0

私はチェックして、タイプミスはコード内ではなくここにありました。 – EFO

関連する問題