使用新的firestore,我有一个如下所示的结构:
{
...
"username": "mr_jones",
"date_created": 1508395138572,
"stats": {
"posts": 143,
...
},
...
}
根据文档,我可以order and limit我的查询,以便根据where
子句过滤数据。如何根据stats.posts
订购此数据?
即
usersRef.orderBy('stats.posts').limit(15);
答案 0 :(得分:4)
您的代码中似乎有拼写错误:
usersRef.orderBy('stats.post').limit(15);
根据您之前的结构,字段名称应为stats.posts
:
usersRef.orderBy('stats.posts').limit(15);
我已经仔细检查了这项工作。在控制台中,我创建了一个名为tester
的集合,用于存储4个文档。每个文档都有一个stats.posts属性设置为1到4的数字。下面的代码打印出1,2,3。如果我删除限制它打印出1,2,3,4。如果我也删除顺序它打印出2,1,3,4。
db.collection('tester').orderBy('stats.posts').limit(3).get().then(function(querySnapshot) {
querySnapshot.forEach(function(documentSnapshot) {
console.log(documentSnapshot.data().stats.posts);
});
});