$collection->find(array("money"=>array('$gt'=>40,'$lte'=>60)))->count(); //結果: 1
2. 単一のデータを取得します
> db.books.find( { $query: {著者: "李白" }, $snapshot: true } );
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
コードをコピーします
コードは次のとおりです:
/**
* 注:
* find() 操作を実行して $result カーソルを取得した後も、カーソルは動的です
。
* つまり、find() の後、カーソル ループが完了するまで、条件を満たすレコードがさらにコレクションに挿入されると、それらのレコードも
によって取得されます。*/
$result = $collection->find(array("auther"=>"李白"))->snapshot();
foreach ($result as $id => $value) {
var_dump($value);
}
4. カスタム列表示
コードをコピーします コードは次のとおりです:
> db.books.find({},{"money":0,"auther":0}); //お金と著者は表示されません
{ "_id" : 1, "title" : "紅楼夢", "typeColumn" : "test", "code" : 10 }
{ "_id" : 2, "title" : "siege", "typeColumn" : "test", "code" : 20 }
{ "_id" : 3, "title" : "Chaofa Baidi City", "typeColumn" : "test", "code" : 30 }
{ "_id" : 4, "title" : "ほぼワイン", "code" : 40 }
> db.books.find({},{"title":1}); // タイトル列のみを表示します
{ "_id" : 1, "title" : "紅楼夢" }
{ "_id" : 2, "title" : "包囲" }
{ "_id" : 3, "title" : "朝発百度市" }
{ "_id" : 4, "title" : "ほぼワイン" }
/**
*money は 60 から 100 の間であり、typecolumn とmoney 列が存在する必要があります
*/
> db.books.find({money:{$gt:60,$lte:100}},{"typeColumn":1,"money":1});
{ "_id" : 1, "typeColumn" : "test", "money" : 80 }
{ "_id" : 4、"money" : 90 }
phpコードは次のとおりであり、順番に対応しています:
コードをコピーします
コードは次のとおりです:
$result = $collection->find()->fields(array("auther"=>false,"money"=>false)); //auther 列とmoney 列を表示しません
$result = $collection->find()->fields(array("title"=>true)) //タイトル列のみを表示します
/**
*money は 60 から 100 の間であり、typecolumn と Money 列が存在する必要があります
*/
$where=array('typeColumn'=>array('$exists'=>true),'money'=>array('$exists'=>true,'$gte'=>60,' $lte'=>100));
$result = $collection->find($where);
5. ページネーション
コードをコピーします
コードは次のとおりです:
> db.books.find().skip(1).limit(1) //最初の項目をスキップして 1 つ取得します
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
この mysql、limit、offset は少し似ています。php コードは次のとおりです。
コードをコピーします
コードは次のとおりです:
$result = $collection->find()->limit(1)->skip(1);//1 レコードをスキップして 1 レコードを取り出す
6. 並べ替え
コードをコピーします
コードは次のとおりです:
> db.books.find().sort({money:1,code:-1}); //1 は降順を意味します -1 は昇順を意味します、パラメータの順序は並べ替え順序に影響します
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
{ "_id" : 1, "title" : "紅楼夢", "auther" : "曹雪琴", "typeColumn" : "test", "money" : 80, "code" : 10 }
{ "_id" : 4, "title" : "Nearly Wine", "auther" : "Li Bai", "money" : 90, "code" : 40 }
PHPコードは次のとおりです:
コードをコピーします
コードは次のとおりです:
$result = $collection->find()->sort(array('code'=>1,'money'=>-1));
7. ファジークエリ
コードをコピーします コードは次のとおりです:
> db.books.find({"title":/城/}); // '%str%' のように、コレクション内のデータをクエリします
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
> db.books.find({"auther":/^李/}); // 'str%' のように、コレクション内のデータをクエリします
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
{ "_id" : 4、 "title" : "Nearly Wine"、 "著者" : "李白"、 "お金" : 90、 "コード" : 40 }
> db.books.find({"auther":/书$/}); // '%str' のように、コレクション内のデータをクエリします
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
> db.books.find( { "title": { $regex: 'City', $options: 'i' } } ); // '%str%' のように、コレクション内のデータをクエリします
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
phpコードは次のとおりであり、順番に対応しています:
コードをコピーします コードは次のとおりです:
$param = array("title" => new MongoRegex('/城/'));
$result = $collection->find($param);
$param = array("auther" => new MongoRegex('/^李/'));
$result = $collection->find($param);
$param = array("auther" => new MongoRegex('/书$/'));
$result = $collection->find($param);
8、$in、$nin
コードをコピーします
コードは次のとおりです:
> db.books.find( { Money: { $in: [ 20,30,90] } } ); // 金額が 20、30、90 に等しいデータを検索します
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
{ "_id" : 4、 "title" : "Nearly Wine"、 "著者" : "李白"、 "お金" : 90、 "コード" : 40 }
> db.books.find( { author: { $in: [ /^李/,/^千/ ] } } //李、銭で始まるデータを検索します
{ "_id" : 2, "title" : "siege", "auther" : "Qian Zhongshu", "typeColumn" : "test", "money" : 56, "code" : 20 }
{ "_id" : 3, "title" : "Chaofa Baidi City", "auther" : "Li Bai", "typeColumn" : "test", "money" : 30, "code" : 30 }
{ "_id" : 4, "title" : "Nearly Wine", "auther" : "Li Bai", "money" : 90, "code" : 40 }
phpコードは次のとおりであり、順番に対応しています:
コードをコピーします
コードは次のとおりです:
$param = array("money" => array('$in'=>array(20,30,90)));
$result = $collection->find($param);
foreach ($result as $id=>$value) {
var_dump($value);
}
$param = array("auther" => array('$in'=>array(new MongoRegex('/^李/'),new MongoRegex('/^钱/')));
$result = $collection->find($param);
foreach ($result as $id=>$value) {
var_dump($value);
}
9、$or
コードをコピーします
コードは次のとおりです:
> db.books.find( { $or: [ { お金: 20 }, { お金: 80 } ] } ); // お金が 20、80 に等しいデータを検索します
{ "_id" : 1, "title" : "紅楼夢", "auther" : "曹雪琴", "typeColumn" : "test", "money" : 80, "code" : 10 }
PHPコードは次のとおりです:
コードをコピーします
コードは次のとおりです:
$param = array('$or'=>array(array("money"=>20),array("money"=>80)));
$result = $collection->find($param);
foreach ($result as $id=>$value) {
var_dump($value);
}
10、独特
コードをコピーします
コードは次のとおりです:
> db.books.distinct( '著者' );
[ 「曹雪琴」、「銭仲舒」、「李白」 ]
> db.books.distinct( '著者' , { お金: { $gt: 60 } });
[ 「曹雪琴」、「李白」 ]
PHPコードは次のとおりです:
コードをコピーします コードは次のとおりです:
$result = $curDB->command(array("distinct" => "書籍", "key" => "著者"));
foreach ($result as $id=>$value) {
var_dump($value);
}
$where = array("money" => array('$gte' => 60));
$result = $curDB->command(array("distinct" => "books", "key" => "auther", "query" => $where));
foreach ($result as $id=>$value) {
var_dump($value);
}
今回は以上が SELECT の一般的な操作です。次に、もう少し詳しく書きます。
PHPでmongoDBデータベースにクエリを実行するときに、「or」などの複数の条件付きクエリコードを記述するにはどうすればよいですか?
ですが、ネットで調べてみたところ
以下の情報を見つけましたので、参考にしてください
mongodbには$or演算子があります。公式サイトに記載 例は以下の通り:
Simple:
db.foo.find( { $or : [ { a : 1 } , { b : 2 } ] } )
別のフィールドを使用
db .foo.find( { name : "bob" , $or : [ { a : 1 } , { b : 2 } ] } )
$or 演算子は、各 or 句の一致を個別に取得し、結果を返すときに重複を削除します。 1.8 では、多数の $or の最適化が計画されています。詳細については、このスレッドを参照してください。
$or はネストできません。
PHP で複数のテーブルの内容を読み取るための select ステートメントを実装する方法
http://www.bkjia.com/PHPjc/875392.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/875392.html技術記事 php での mongodb select の一般的なオペレーション コード例、前述の mongodbselect、mongodb のインストール、構成、クラスタリング、php の挿入と更新などは、mongodb を参照してください。 それについて話しましょう...