2017-02-18 9 views
0

mongoドキュメントからすべてのフィールドを取得し、特定のドキュメントまたはドキュメントオブジェクトの長さを計算します。 マイMongoの文書は次のようになります -mongoドキュメントからすべてのフィールドを取得できません

{ 
    "_id" : ObjectId("58a80b0521fd923fd908a7f8"), 
    "qus0" : "question 0", 
    "qus0_count" : 0, 
    "qus1" : "question 1", 
    "qus1_count" : 0, 
    "qus2" : "question 2", 
    "qus2_count" : 0, 
    "qus10" : "question 10", 
    "qus10_count" : 0 
} 

今、私はデータをフェッチするために、クエリを使用していますが、それは私だけを与える:

db.test.findOne({"_id": ObjectId("58a80b0521fd923fd908a7f8")});

{ 
    "_id" : ObjectId("58a80b0521fd923fd908a7f8"), 
    "qus0_count" : 0, 
    "qus1_count" : 0, 
    "qus2_count" : 0, 
    "qus10_count" : 0 
} 

と私は期待していました: -

{ 
    "_id" : ObjectId("58a80b0521fd923fd908a7f8"), 
    "qus0" : "question 0", 
    "qus0_count" : 0, 
    "qus1" : "question 1", 
    "qus1_count" : 0, 
    "qus2" : "question 2", 
    "qus2_count" : 0, 
    "qus10" : "question 10", 
    "qus10_count" : 0 
} 

助けていただければ幸いです。ありがとう。

答えて

0

私はあなたの例以下のスキーマでコレクションを作成し、文書のすべての要素を取得するためにfindOneを使用することができたています

> db.test.find().pretty() 
{ 
    "_id" : ObjectId("58a80b0521fd923fd908a7f8"), 
    "qus0" : "question 1", 
    "qus0_count" : 0, 
    "qus10" : "question 10", 
    "qus10_count" : 0 
} 
> db.test.findOne({"_id": ObjectId("58a80b0521fd923fd908a7f8")}); 
{ 
    "_id" : ObjectId("58a80b0521fd923fd908a7f8"), 
    "qus0" : "question 1", 
    "qus0_count" : 0, 
    "qus10" : "question 10", 
    "qus10_count" : 0 
} 

あなたはデバッグを支援するために、上記のように、クエリであなたの質問を編集してくださいもらえますか?

は、ドキュメントのサイズを見つけることについて、あなたの質問に答えるために、あなたはObject.bsonsize()を使用することができます。

> Object.bsonsize(db.test.findOne({"_id": ObjectId("58a80b0521fd923fd908a7f8")})); 
99 
0

あなたの要求は、クライアントまたはサーバー上で行われていますか?

クライアント上にある場合は、サーバーのMeteor.publish機能を使用してコレクションのすべてのフィールドを公開していることを確認してください。

これは、いくつかのフィールドを公開します:

Meteor.publish('test',() => { 
    return Test.find({}, { 
    fields: { 
     qus0_count: 1, 
     qus1_count: 1, 
     qus2_count: 1, 
     qus10_count: 1, 
    }, 
    }); 
}); 

は、これはすべてのフィールドを公開します:

Meteor.publish('test',() => { 
    return Test.find({}); 
});