我正在考虑让用户在应用程序中关注其他用户,并且会有他们关注的人的帖子。
是否有一种方法可以一次查询多个'where'语句,或者与列表进行比较?还是需要走另一条路线?
下面是NodeJS中的一个示例场景:
var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF'];
var followingPosts = await db.collection('posts').where('posterUID', '==', usersFollowed.Any()).get();
(.Any()
是组成的,我想做什么)
下面是一个在Firestore中的post文档的例子:
postID
caption: 'a picture of something'
type: 'picutre'
size: 1
posterUID: GKXgK2CPPGPQjmQ3Lsrh
应使用in
操作符:"使用in
操作符在同一字段上使用逻辑或组合最多10个相等(==)子句。in
查询返回文档,其中给定字段匹配任何比较值"。
var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF'];
var followingPosts = await db.collection('posts').where('posterUID', 'in', usersFollowed).get();
但是,请注意最多只能组合10个相等(==)子句.如果需要合并10个以上的子句,则需要执行几个类似的查询并合并结果。本文将解释如何使用JS SDK合并两个查询。