任何人都可以在yii mongodb中告诉我类似的语法。我想使用mongo db collection中的sql搜索特定名称。如何为此编写查询。
答案 0 :(得分:0)
没有赞支持。但根据您的要求,您可以使用regex support。
以下是SQL to MongoDB query mapping chart.
中的示例SELECT * FROM users WHERE name LIKE "%Joe%" = db.users.find({name:/Joe/})
SELECT * FROM users WHERE name LIKE "Joe%" = db.users.find({name:/^Joe/})
答案 1 :(得分:0)
您可以使用与YiiMongoDBSuite等组件兼容的MongoRegex对象:http://php.net/manual/en/class.mongoregex.php。
它使用正则表达式匹配MongoDB中SQL = %sammaye%
中的new MongoRegex('/sammaye/')
。
要按sammaye%
进行搜索,您可以按照此处的要求new MongoRegex('/^sammaye/')
进行搜索:https://stackoverflow.com/questions/13194639/like-function-with-yii-mongo-db
答案 2 :(得分:0)
如果你在Yii2中使用ActiveRecord,你应该在where条件中选择简单的 like 部分:
ActiveRecord::findOne(['like', 'field', 'query'])
有关详细信息,请参阅相关文档:http://www.yiiframework.com/doc-2.0/yii-db-queryinterface.html#where()-detail
当然也可以使用PHP's MongoDB命令:
$mongo = \Yii::$app->mongodb;
$collection = $mongo->getCollection('your collection name');
$result = $collection->find(['field' => new \MongoDB\BSON\Regex('^stratswith')]);
希望它有所帮助!