【问题标题】:How to enter equal keys in mongodb query via php?如何通过php在mongodb查询中输入相等的键?
【发布时间】:2016-11-15 10:05:02
【问题描述】:

在 mongodb bash 中我可以这样做:

db.collection.find({'field1': /^value1/, 'field2': /^value2/, 'field2': /^value3/});

field2 是数组时非常方便。另一种选择是:

db.collection.find({'$and': [
    {'field1': /^value1/}, 
    {'field2': /^value2/}, 
    {'field2': /^value3/}
]});

...不方便。

但我不能在 php 中使用第一个查询,因为 php 数组键必须是唯一的。有没有办法在 php 中执行此查询?

【问题讨论】:

  • 我很惊讶 MongoDB JavaScript shell 中的第一个作品,它不应该

标签: php mongodb mongodb-query


【解决方案1】:

您可以使用 $all 运算符,它等效于指定值的$and 运算;即以下语句:

{ "field2": { "$all": [ /^value2/, /^value3/ ] } }

相当于:

{ "$and:" [ { "field2": /^value2/ }, { "field2": /^value3/ } ] }

因此您的最终查询将是

db.collection.find({
    "field1": /^value1/, 
    "field2": { "$all": [ /^value2/, /^value3/ ] }
});

【讨论】:

  • TBH 它是主观的,它比$and 更好,因为它取决于某人写作的角度
猜你喜欢
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2020-01-09
相关资源
最近更新 更多