这应该使用fieldpath.documentId()
来实现。
每个文档的数据中都有一个隐藏的__name__
字段,这是fieldpath.documentID()
的目标。
对于普通的集合查询,fieldpath.documentID()
将只是文档的ID。但是,对于集合组查询,此值是文档的路径。
const cityRef = firebase.firestore().doc('cities/cityId');
firebase.firestore().collectionGroup('attractions')
.orderBy(firebase.firestore.FieldPath.documentId())
.startAt(cityRef.path + "/"),
.endAt(cityRef.path + "/\uf8ff")
.get()
.then((querySnapshot) => {
console.log("Found " + querySnapshot.size + " docs");
querySnapshot.forEach((doc) => console.log("> " + doc.ref.path))
})
.catch((err) => {
console.error("Failed to execute query", err);
})
const cityRef = firebase.firestore().doc('cities/cityId');
firebase.firestore().collectionGroup('attractions')
.orderBy(firebase.firestore.FieldPath.documentId())
.startAt(cityRef.path),
.endAt(cityRef.path + "\uf8ff")
.get()
.then((querySnapshot) => {
console.log("Found " + querySnapshot.size + " docs");
querySnapshot.forEach((doc) => console.log("> " + doc.ref.path))
})
.catch((err) => {
console.error("Failed to execute query", err);
})
如果文档ID的长度不同,则上述块将失败。假设您只想要“/cities/new York”
下的文档,如果另一个名为“new Yorkshire”
的城市也在cities集合中,那么它也会包含它的结果。
继我上一篇文章之后,我了解了个人收藏的写作限制 每秒500次写入一个收藏 这个500ps的限制如何适用于最近引入的集合组?(btw...托德在这里没有得到足够大的欢呼!: P) https://firebase.google.com/docs/firestore/query-data/queries#collection-组查询 Firestore限制仍然仅引用单个集合: https://fire
我有一个包含一些整数值的数组,我需要得到其中的一个子集,它给我的最大和小于给定值 假设我有一个数组: 我想得到这个数组的一个子集,最大化总和,但低于用户给定的限制,比如250。在这种情况下,它应该返回[139,40,29]<我看了一下这个问题和相关的答案,并尝试使用给出的代码,但我不太理解。无论如何,我已经尝试过了,将最小值设置为0,将最大值设置为给定的限制,但它总是返回“5”,这是不正确的,因为
假设我有一些用户使用以下文档编制索引: ElasticSearch DSL是否允许我构造一个查询,在该查询中,我可以根据人们的电子邮件地址进行搜索,但前提是该地址处于活动状态?更抽象地说,根据嵌套对象的其他属性搜索文档。 满足此条件的搜索将返回此文档以搜索或,但在搜索时不会返回此文档。
编辑1:我也试过这个,但同样的问题。
我需要你帮助我设计一个真实场景的索引。这可能是一个很长的问题,让我尽量简明扼要地解释一下。 我们正在构建一个基于Elasticsearch的搜索平台,为客户提供站点搜索体验,索引中的文档可以是这样的: 对于每个查询,返回的命中文档默认按相关性排序,但我们的客户还希望为一些关键字提升一些特定文档, 它们为我们提供了以下内容,如增强配置XML: 也就是说,如果用户搜索“keyword1”,前1名命中的
问题内容: 假设我要搜索一系列嵌入式文档或子文档,但将它们的父母作为我的结果返回,例如“建筑物和单元”: 现在假设我要退回所有单位> = 1000平方英尺的建筑物。我该怎么做? 问题答案: 将单位大小存储为数组: 并搜索: