我想从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 :(得分: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
答案 1 :(得分: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({});
});