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" ] } } }