以这个结构为例:
- Users (root collection)
- User (document)
- userId
- username
- ...
--- Personalization (subcollection)
--- Alerts (document)
- myTags (array of strings)
- ...
--- Location (document)
- region (string)
- ...
我想执行一个查询,首先验证用户区域
(/users/{userId}/personalization/location
)是否等于参考值。如果是,我希望它验证数组mytags
(/users/{userId}/personalization/alerts
)是否包含某个标记。
这是我到目前为止能找到的最接近的东西:
db.collectionGroup('Personalization').where('region', '==', 'California').where('myTags', 'array-contains', 'Macbook')
.get().then(querySnapshot => {
if (querySnapshot.empty) {
console.log('Result is empty');
} else {
console.log('Result found. ', querySnapshot.size, ' result(s).');
}
querySnapshot.forEach(doc => {
console.log(doc.id, ' => ', doc.data());
});
}).catch(error => {
console.error(error);
});
--- Personalization (subcollection)
--- Alerts (document)
- myTags (array of strings)
- region (string)
- ...
db.collectionGroup('Personalization').where('myTags', 'array-contains', 'Macbook').get().then(querySnapshot => {
querySnapshot.forEach(element => {
console.log('Search only by tag => ', element.id, ' => ', element.data());
});
此外,如果有人知道一些关于Firestore的复合查询的好例子,我将不胜感激。我已经阅读了文档,并看到了Firebase团队解释Firestore如何工作的几个视频,但我觉得缺乏更复杂的示例来理解它在实践中的工作方式。
Firestore目前不支持逻辑或类型查询,您可以提供多个条件进行匹配:
如您所见,它只支持逻辑AND。当提供两个where子句时,查询将只给出满足这两个条件的文档。
我试图创建一个查询来获取一个firestore集合/文档,其中userId等于当前userId,或者当前userId等于contributorsid。 我想让它给我所有陈述属实的文档。但它只返回第一个。如果我选择只包含其中一个查询(“where”),它们都会工作并返回正确的文档。
问题内容: 由于ORFirestore中没有逻辑运算符,因此我尝试在本地合并2个单独的查询。 现在,我想知道如何保持结果的正确顺序。当我独立运行2个查询时,我无法明确地查询结果(至少不是我使用该orderBy方法从Firestore获取结果的顺序)。 我的想法是将第二个查询放在第一个查询的内部。这是一个坏主意的表现明智的选择吗? 问题答案: 要在本地合并2个单独的查询,建议您使用方法。您可以使用以
问题内容: 以下查询: 什么也不返回。 我应该有足够多的数据来使查询工作。我究竟做错了什么? 问题答案: 您的第二个日期早于您的第一个日期(即,您正在查询2010年9月29日至2010年1月30日之间)。尝试颠倒日期的顺序:
学生拥有诸如 并且有这样的文档 还有一个名为“学生-课程”的第三个集合,我在那里保存了学生的id和他们相应的课程id。像这样
在Firestore中,我有一个用户集合,在每个用户文档中存储一个名为favorites的集合,该集合包含标记为favorites(存储)的文档的ID 我可以采取另一种方法来获取两个集合并手动过滤它们,但我使用的是Firebase RecycerView适配器,它显示的所有数据都基于查询,这将使事情更加高效。 这样的结果是如何实现的呢?如果需要进一步的解释,请告诉我
问题内容: 我有两个文件,并且我想对两个文件进行逐行操作。(换句话说,每个文件的第一行都与之对应,第二行等等)。现在,我想到了一些稍微麻烦的方法来同时遍历两个文件。 但是 ,这是Python,因此我认为这里有一些语法速记。 换句话说,是否有一些简单的方法可以适应 这样就可以同时从两个文件中提取数据? 问题答案: Python 2: 使用加入了两个迭代器。 如果文件长度不相等,请使用。 在Pytho