2011-12-19 4 views
0

好奇心 - 次の例では、mongo REPLは最初の印刷を過ぎて変数 'a'にユーザーハッシュを格納しないのはなぜですか?Mongo REPLの結果をvarに格納しますか?

mongoの遅延クエリの評価と関係がありますか?

> var a = db.users.find(0) 
> a 
{ "_id" : ObjectId("4eed6dc299cd67e275000001"), "provider" : "facebook", "uid" : "343323487", "name" : "Brian Jordan", "email" : "[email protected]" } 
> a 
> 

答えて

2

findOneを使用できます。

> var a = db.testcoll.findOne() 
> a 
{ 
    "_id" : ObjectId("4e7930a3ff647405d6000003"), 
    "bf" : false, 
    "df" : ISODate("2011-09-21T00:32:35.629Z") 
} 

それとも、そのソースを見て、類似した何かを行うことができます

> db.testcoll.findOne 
function (query, fields) { 
    var cursor = this._mongo.find(this._fullName, this._massageObject(query) || {}, fields, -1, 0, 0, 0); 
    if (!cursor.hasNext()) { 
     return null; 
    } 
    var ret = cursor.next(); 
    if (cursor.hasNext()) { 
     throw "findOne has more than 1 result!"; 
    } 
    if (ret.$err) { 
     throw "error " + tojson(ret); 
    } 
    return ret; 
} 
関連する問題