MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

特定の時間にのみレコードを検索するMongoDBクエリ?


これには、$hour演算子を使用します。まず、フィールドの1つを日付としてドキュメントを含むコレクションを作成しましょう-

> db.mongoDbSearchForHoursDemo.insertOne({"CustomerName":"Larry","OrderDatetime":new ISODate("2019-01-31 09:45:50")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6e8a86d78f205348bc62a")
}
> db.mongoDbSearchForHoursDemo.insertOne({"CustomerName":"Larry","OrderDatetime":new ISODate("2019-02-21 01:10:01")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6e8b86d78f205348bc62b")
}
> db.mongoDbSearchForHoursDemo.insertOne({"CustomerName":"Larry","OrderDatetime":new ISODate("2019-04-01 04:10:11")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6e8e26d78f205348bc62c")
}
> db.mongoDbSearchForHoursDemo.insertOne({"CustomerName":"Larry","OrderDatetime":new ISODate("2019-05-11 08:53:01")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6e8f26d78f205348bc62d")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.mongoDbSearchForHoursDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd6e8a86d78f205348bc62a"),
   "CustomerName" : "Larry",
   "OrderDatetime" : ISODate("2019-01-31T09:45:50Z")
}
{
   "_id" : ObjectId("5cd6e8b86d78f205348bc62b"),
   "CustomerName" : "Larry",
   "OrderDatetime" : ISODate("2019-02-21T01:10:01Z")
}
{
   "_id" : ObjectId("5cd6e8e26d78f205348bc62c"),
   "CustomerName" : "Larry",
   "OrderDatetime" : ISODate("2019-04-01T04:10:11Z")
}
{
   "_id" : ObjectId("5cd6e8f26d78f205348bc62d"),
   "CustomerName" : "Larry",
   "OrderDatetime" : ISODate("2019-05-11T08:53:01Z")
}

以下は、特定の時間を検索するためのクエリです。ここでは、特定の時間8と1のレコードを取得します。出力には、両方の時間(時間)のIDが表示されます-

>db.mongoDbSearchForHoursDemo.aggregate([{$project:{SpecificHours:{$hour:"$OrderDatetime"}}},
{$match:{SpecificHours:{"$in":[08,01]}}}]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd6e8b86d78f205348bc62b"), "SpecificHours" : 1 }
{ "_id" : ObjectId("5cd6e8f26d78f205348bc62d"), "SpecificHours" : 8 }

  1. MongoDBクエリを実行して、特定のフィールド値のみを更新するにはどうすればよいですか?

    例を見て、ドキュメントを使用してコレクションを作成しましょう- > db.demo557.insertOne({Name:"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e8f28e954b4472ed3e8e864") } > db.demo557.insertOne({Name:"David"});{    "acknowledged" :

  2. フィールド値で「@email」のような文字列を検索するMongoDBクエリ

    MongoDB find()を使用して電子メール文字列を検索します。ドキュメントを使用してコレクションを作成しましょう- > db.demo727.insertOne({UserId:"John@email.com"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eab375f43417811278f5898") } > db.demo727.insertOne({UserId:"