Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm kiếm chuỗi hoặc số trong trường MongoDB với $in

Sử dụng toán tử $in để tìm kiếm giá trị là chuỗi HOẶC số trong cùng một trường.

Tạo collection với document (một document có Marks là số, một document có Marks là chuỗi):

> db.searchForStringOrNumberDemo.insertOne(
    {
      "_id": new ObjectId(),
      "StudentName": "Larry",
      "StudentDetails": { "StudentMarks": { "StudentMongoDBMarks": [44] } }
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5ce2407c36e8b255a5eee944") }
> db.searchForStringOrNumberDemo.insertOne(
    { "_id": new ObjectId(), "StudentName": "Larry", "StudentDetails": { "StudentMarks": { "StudentMongoDBMarks": ["44"] } } }
); { "acknowledged" : true, "insertedId" : ObjectId("5ce240f036e8b255a5eee945") }

Hiển thị tất cả document:

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

Kết quả:

{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }

Truy vấn tìm document có StudentMongoDBMarks chứa 44 (số) HOẶC "44" (chuỗi):

> db.searchForStringOrNumberDemo.find({
  "StudentDetails.StudentMarks.StudentMongoDBMarks": { "$in": ["44", 44] }
});

Kết quả (trả về cả 2 document):

{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }