假设文档结构如下:
users(Collection) -> user(Document) -> info(Array) -> { name(String), age(Number) }
要查询age字段等于18的用户,可以使用以下代码:
const usersRef = db.collection('users');
const query = usersRef.where('info', 'array-contains', { age: 18 });
const querySnapshot = await query.get();
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
其中,array-contains
表示检查数组中是否包含指定的对象。因此,查询的条件应该是一个对象,其中包含所需的属性和值。
如果想查询多个条件,可以使用array-contains-any
操作符,例如:
const query = usersRef.where('info', 'array-contains-any', [{age: 18}, {name: 'John'}]);
这将返回age
等于18或name
为John的所有用户。