$all

语法

  1. { <字段名>: { $all: [ <值1>, <值2>, ... ] } }

描述

$all 的操作对象是数组类型的字段名,选择“<字段名>”包含所有给定数组“[ <值1>, <值2>, … ]”中的值。

示例

在集合 foo.bar 插入2条记录:

  1. > db.foo.bar.insert( { "name": [ "Tom", "Mike", "Jack" ] } )
  2.  
  3. > db.foo.bar.insert( { "name": [ "Tom", "John" ], "age": 20 } )

SequoiaDB shell 运行如下:

  • 查询集合 foo.bar 所有“name”字段的值包含“Tom”和“Mike”的记录。
  1. > db.foo.bar.find( { "name": { "$all": [ "Tom", "Mike" ] } } )
  2. {
  3. "_id": {
  4. "$oid": "582187282b4c38286d000001"
  5. },
  6. "name": [
  7. "Tom",
  8. "Mike",
  9. "Jack"
  10. ]
  11. }
  12. Return 1 row(s).
  • 使用 $all 匹配非数组类型的字段,效果和 equal 一样:
  1. > db.foo.bar.find( { "age": { "$all": [ 20 ] } } )
  2. {
  3. "_id": {
  4. "$oid": "58218a132b4c38286d000002"
  5. },
  6. "name": [
  7. "Tom",
  8. "John"
  9. ],
  10. "age": 20
  11. }
  12. Return 1 row(s).
  13.  
  14. > db.foo.bar.find( { "age": 20 } )
  15. {
  16. "_id": {
  17. "$oid": "58218a132b4c38286d000002"
  18. },
  19. "name": [
  20. "Tom",
  21. "John"
  22. ],
  23. "age": 20
  24. }
  25. Return 1 row(s).