Computer >> Máy Tính >  >> Lập trình >> MongoDB

Tìm Chuỗi lớn hơn một độ dài cụ thể trong MongoDB?


Để tìm chuỗi có độ dài lớn hơn một giá trị cụ thể trong MongoDB, hãy sử dụng toán tử $ where. Cú pháp như sau -

db.yourCollectionName.find({$where:'this.yourStringFieldName.length >
yourIntegerValue'}).pretty();

Để hiểu khái niệm trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.stringFieldLengthDemo.insertOne({"UserId":1,"UserName":"Adam Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bb4b2386c62d05142a78")
}
> db.stringFieldLengthDemo.insertOne({"UserId":2,"UserName":"Carol Taylor"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bb562386c62d05142a79")
}
> db.stringFieldLengthDemo.insertOne({"UserId":3,"UserName":"James Brown"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bb5b2386c62d05142a7a")
}
> db.stringFieldLengthDemo.insertOne({"UserId":4,"UserName":"John Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bb662386c62d05142a7b")
}
> db.stringFieldLengthDemo.insertOne({"UserId":5,"UserName":"David Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bb892386c62d05142a7c")
}
> db.stringFieldLengthDemo.insertOne({"UserId":6,"UserName":"John Williams"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bbb02386c62d05142a7d")
}
> db.stringFieldLengthDemo.insertOne({"UserId":7,"UserName":"Chris Evans"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77bbd32386c62d05142a7e")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau -

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

Sau đây là kết quả -

{
   "_id" : ObjectId("5c77bb4b2386c62d05142a78"),
   "UserId" : 1,
   "UserName" : "Adam Smith"
}
{
   "_id" : ObjectId("5c77bb562386c62d05142a79"),
   "UserId" : 2,
   "UserName" : "Carol Taylor"
}
{
   "_id" : ObjectId("5c77bb5b2386c62d05142a7a"),
   "UserId" : 3,
   "UserName" : "James Brown"
}
{
   "_id" : ObjectId("5c77bb662386c62d05142a7b"),
   "UserId" : 4,
   "UserName" : "John Smith"
}
{
   "_id" : ObjectId("5c77bb892386c62d05142a7c"),
   "UserId" : 5,
   "UserName" : "David Miller"
}
{
   "_id" : ObjectId("5c77bbb02386c62d05142a7d"),
   "UserId" : 6,
   "UserName" : "John Williams"
}
{
   "_id" : ObjectId("5c77bbd32386c62d05142a7e"),
   "UserId" : 7,
   "UserName" : "Chris Evans"
}

Đây là truy vấn để tìm chuỗi có độ dài lớn hơn giả sử là 11 trong MongoDB -

> db.stringFieldLengthDemo.find({$where:'this.UserName.length >11'}).pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c77bb562386c62d05142a79"),
   "UserId" : 2,
   "UserName" : "Carol Taylor"
}
{
   "_id" : ObjectId("5c77bb892386c62d05142a7c"),
   "UserId" : 5,
   "UserName" : "David Miller"
}
{
   "_id" : ObjectId("5c77bbb02386c62d05142a7d"),
   "UserId" : 6,
   "UserName" : "John Williams"
}