2017-02-18 64 views
0

我想從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({}); 
}); 
相關問題