我们如何在yii Mongodb中使用?

时间:2012-11-02 10:04:35

标签: mongodb

任何人都可以在yii mongodb中告诉我类似的语法。我想使用mongo db collection中的sql搜索特定名称。如何为此编写查询。

3 个答案:

答案 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')]);

希望它有所帮助!