带startAt和endAt的orderByChild对合并字段不起作用
orderByChild with startAt and endAt is not working for combined field
我想用两个where条件进行查询。我知道直接在firebase是不可能的。所以,我用下面的方法。将两个属性存储为一个字段并在该字段上进行查询。但是我没有得到正确的结果。我也得到了不匹配的记录,为什么?
await firebase
.child(child)
.orderByChild('t_p')
.startAt(startAt + pId, 't_p')
.endAt((timestamp - 1) + pId, 't_p')
.limitToLast(15)
我试了下面的
await firebase
.child(child)
.orderByChild('t_p')
.startAt(startAt + pId)
.endAt((timestamp - 1) + pId)
.limitToLast(15)
这两者的区别是什么?start和endat中的第二个选项参数是什么?
我的数据是这样的
{
t_p: "145343423423_afihad223dadd"
},
{
t_p: "1453434133323_afihad223dadd"
},
{
t_p: "145223423423_kkkkaaass"
},
{
t_p: "145223423450_kkkkaaass"
}
如果我查询
.child(child)
.orderByChild('t_p')
.startAt("145223423423_kkkkaaass", 't_p')
.endAt("145223423450_kkkkaaass", 't_p')
.limitToLast(15)
我也得到了其他的记录。为什么?
这是因为它是按字典顺序排列的,145343423423介于145223423和1452234450之间。
也许你应该把你的t_p存储为p_t?这样你就会变成这样:
{
p_t: "afihad223dadd_145343423423"
},
{
p_t: "afihad223dadd_1453434133323"
},
{
p_t: "kkkkaaass_145223423423"
},
{
p_t: "kkkkaaass_145223423450"
}
.child(child)
.orderByChild('p_t')
.startAt("kkkkaaass_14522342342")
.endAt("kkkkaaass_145223423450")
.limitToLast(15)
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 在wordpress一定时间后更改自定义字段
- 如何在HTML输入字段中添加不可删除的后缀
- Meteor-添加用户自定义字段的方法不起作用
- 互斥单选按钮和相应的输入字段
- MongoDB聚合将两个不同的字段合并为一个并获取计数
- 将文档的MongoDB字段合并到一个文档中
- 什么样的javascript RegEx将匹配我的合并字段的所有实例
- 合并到选择字段
- Javascript:根据其他字段合并两个JSON
- 合并来自多个字段输入的搜索结果
- 通过合并具有相同字段值的元素,获得卑鄙数组的唯一元素
- 带startAt和endAt的orderByChild对合并字段不起作用
- 合并并聚合具有相同架构mongodb的两个或多个集合的某些字段
- 将多个字段合并为一个输入字段时出现的问题