MongoDB Atlas์์ ๋ฐ์ดํฐ ์ฝ๊ธฐ - ํจ์
์ด ํ์ด์ง์ ๋ด์ฉ
- ๊ฐ์
- ๋ฐ์ดํฐ ๋ชจ๋ธ
- ์ค๋ํซ ์ค์
- ์ฟผ๋ฆฌ ๋ฉ์๋
- ๋จ์ผ ๋ฌธ์ ์ฐพ๊ธฐ(
findOne()
) - ํ๋ ์ด์์ ๋ฌธ์ ์ฐพ๊ธฐ(
find()
) - ์ปฌ๋ ์
์ ๋ฌธ์ ์(
count()
) - ์ฟผ๋ฆฌ ํจํด
- ๋ฌธ์ ID๋ก ์ฐพ๊ธฐ
- ๋ ์ง๋ณ๋ก ์ฐพ๊ธฐ
- ๋ฃจํธ ์์ค ํ๋ ์ผ์น
- ์ฌ๋ฌ ํ๋ ์ผ์น
- ๋ด์ฅ๋ ๋ฌธ์ ํ๋ ์ผ์น
- ๊ฐ ๋ฐฐ์ด ์ผ์น
- ๋ฐฐ์ด ์์ ์ผ์น
- ์ฟผ๋ฆฌ ์ฐ์ฐ์
- Compare Values
- ๋ ผ๋ฆฌ ํํ์ ํ๊ฐํ๊ธฐ
- ์ ๊ท ํํ์ ํ๊ฐํ๊ธฐ
๊ฐ์
์ด ํ์ด์ง์ ์์์์๋ ํจ์์์ MongoDB ์ฟผ๋ฆฌ API๋ฅผ ์ฌ์ฉํ์ฌ Atlas ํด๋ฌ์คํฐ์์ ๋ฌธ์๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌ ํ๊ธฐ ์ํด ํธ์ถํ ์ ์๋ ๋ฉ์๋ , ํํ์ ์ผ์น ํํฐ๋ฅผ ์ฐ๊ธฐ (write) ์ ์๋ ์ฐ์ฐ์ , ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ค ํ๊ธฐ ์ํด ์ด๋ค์ ๊ฒฐํฉํ๋ ๋ช ๊ฐ์ง ํจํด ์ ๋ํด ์์๋ณด์ธ์.
๋ฐ์ดํฐ ๋ชจ๋ธ
์ด ํ์ด์ง์ ์์์๋ ์จ๋ผ์ธ ์คํ ์ด์์ ๊ตฌ๋งคํ ์ ์๋ ๋ค์ํ ํ๋ชฉ์ ๋ชจ๋ธ๋งํ store.items
์ปฌ๋ ์
์ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ํญ๋ชฉ์๋ name
, ์ฌ๊ณ quantity
๋ฐ ๊ณ ๊ฐ reviews
์ ๋ฐฐ์ด์ด ์์ต๋๋ค.
{ "title": "Item", "required": ["_id", "name", "quantity", "reviews"], "properties": { "_id": { "bsonType": "objectId" }, "name": { "bsonType": "string" }, "quantity": { "bsonType": "int" }, "reviews": { "bsonType": "array", "items": { "bsonType": "object", "required": ["username", "comment"], "properties": { "username": { "bsonType": "string" }, "comment": { "bsonType": "string" } } } } } }
์ค๋ํซ ์ค์
ํจ์์์ ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ MongoDB ์ปฌ๋ ์ ํธ๋ค์ ์ธ์คํด์คํํด์ผ ํฉ๋๋ค:
exports = function() { const mongodb = context.services.get("mongodb-atlas"); const itemsCollection = mongodb.db("store").collection("items"); const purchasesCollection = mongodb.db("store").collection("purchases"); // ... paste snippet here ... }
์ฟผ๋ฆฌ ๋ฉ์๋
๋จ์ผ ๋ฌธ์ ์ฐพ๊ธฐ(findOne()
)
collection.findOne()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ค์ ํจ์ ์ค๋ํซ์ items
์ปฌ๋ ์
์์ quantity
๊ฐ 25
๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๋จ์ผ ๋ฌธ์๋ฅผ ์ฐพ์ต๋๋ค:
const query = { "quantity": { "$gte": 25 } }; const projection = { "title": 1, "quantity": 1, } return itemsCollection.findOne(query, projection) .then(result => { if(result) { console.log(`Successfully found document: ${result}.`); } else { console.log("No document matches the provided query."); } return result; }) .catch(err => console.error(`Failed to find document: ${err}`));
ํ๋ ์ด์์ ๋ฌธ์ ์ฐพ๊ธฐ(find()
)
collection.find()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ค์ ํจ์ ์ค๋ํซ์ items
์ปฌ๋ ์
์์ ๋ฆฌ๋ทฐ๊ฐ ํ๋ ์ด์ ์๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฐพ์ _id
ํ๋๋ฅผ ์๋ตํ๊ณ name
์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ๋ฐํํฉ๋๋ค.
const query = { "reviews.0": { "$exists": true } }; const projection = { "_id": 0 }; return itemsCollection.find(query, projection) .sort({ name: 1 }) .toArray() .then(items => { console.log(`Successfully found ${items.length} documents.`) items.forEach(console.log) return items }) .catch(err => console.error(`Failed to find documents: ${err}`))
์ปฌ๋ ์
์ ๋ฌธ์ ์ ๊ณ์ฐ(count()
)
collection.count()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์
์ ๋ฌธ์ ๊ฐ์๋ฅผ ์ง๊ณํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ์ฌ ์ง๊ณํ ๋ฌธ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๋ฉ์๋๋ ์ปฌ๋ ์
์ ๋ชจ๋ ๋ฌธ์ ์๋ฅผ ์ง๊ณํฉ๋๋ค.
๋ค์ ํจ์ ์ค๋ํซ์ items
์ปฌ๋ ์
์์ ๋ฆฌ๋ทฐ๊ฐ ํ๋ ์ด์ ์๋ ๋ฌธ์ ์๋ฅผ ์ง๊ณํฉ๋๋ค:
return itemsCollection.count({ "reviews.0": { "$exists": true } }) .then(numDocs => console.log(`${numDocs} items have a review.`)) .catch(err => console.error("Failed to count documents: ", err))
์ฟผ๋ฆฌ ํจํด
๋ฌธ์ ID๋ก ์ฐพ๊ธฐ
์ปฌ๋ ์
์ ์ฟผ๋ฆฌํ์ฌ ์ง์ ๋ ID๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. MongoDB๋ ์๋์ผ๋ก ๊ฐ ๋ฌธ์์ ID๋ฅผ ๋ฌธ์์ _id
ํ๋์ ObjectId
๊ฐ์ผ๋ก ์ ์ฅํฉ๋๋ค.
{ "_id": <ObjectId> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ _id
๊ฐ์ด 5ad84b81b8b998278f773c1b
์ธ ์ปฌ๋ ์
์ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "_id": BSON.ObjectId("5ad84b81b8b998278f773c1b") }
๋ ์ง๋ณ๋ก ์ฐพ๊ธฐ
์ปฌ๋ ์ ์ ์ฟผ๋ฆฌํ์ฌ ํน์ ๋ ์ง ๊ฐ์ด ์๋ ํ๋๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ฐพ๊ฑฐ๋ ๋ ์ง ๋ฒ์ ๋ด์ ๋ฌธ์๋ฅผ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
{ "<Date Field Name>": <Date | Expression> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ createdAt
๋ ์ง๊ฐ 2019๋
1์ 23์ผ์ธ ์ปฌ๋ ์
์ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "createdAt": new Date("2019-01-23T05:00:00.000Z") }
์์
๋ค์ ์ฟผ๋ฆฌ๋ createdAt
๋ ์ง๊ฐ 2019๋
๋ด ๋ฒ์์ ์๋ ์ปฌ๋ ์
์ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "createdAt": { "$gte": new Date("2019-01-01T00:00:00.000Z"), "$lt": new Date("2020-01-01T00:00:00.000Z"), } }
๋ฃจํธ ์์ค ํ๋ ์ผ์น
๊ฐ ๋ฌธ์์ ๋ฃจํธ ์์ค ํ๋ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ปฌ๋ ์ ์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค. MongoDB๊ฐ ๊ฐ ๋ฌธ์์ ๋ํด ํ๊ฐํ๋ ํน์ ๊ฐ์ด๋ ์ค์ฒฉ ํํ์์ ์ง์ ํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ MongoDB ์๋ฒ ๋งค๋ด์ผ์ ์ฟผ๋ฆฌ ๋ฌธ์ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ธ์.
{ "<Field Name>": <Value | Expression> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ name
ํ๋์ ๊ฐ์ด Basketball
์ธ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "name": "Basketball" }
์ฌ๋ฌ ํ๋ ์ผ์น
๋จ์ผ ์ฟผ๋ฆฌ ๋ฌธ์์์ ์ฌ๋ฌ ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ง์ ํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ ๋ฌธ์์ ๊ฐ ๋ฃจํธ ์์ค ํ๋๋ ์ปฌ๋ ์ ์ ํ๋์ ๋งคํ๋ฉ๋๋ค. MongoDB๋ ๋ชจ๋ ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ฌธ์๋ง ๋ฐํํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ MongoDB ์๋ฒ ๋งค๋ด์ผ์ ๋ด์ฅ๋/์ค์ฒฉ๋ ๋ฌธ์์ ๋ํ ์ฟผ๋ฆฌ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ธ์.
{ "<Field Name 1>": <Value | Expression>, "<Field Name 2>": <Value | Expression> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ name
ํ๋์ ๊ฐ์ด Basketball
์ด๊ณ quantity
๊ฐ์ด 0๋ณด๋ค ํฐ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "name": "Basketball", "quantity": { "$gt": 0 } }
๋ด์ฅ๋ ๋ฌธ์ ํ๋ ์ผ์น
๋ด์ฅ๋ ๋ฌธ์ ํ๋์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ปฌ๋ ์ ์ ์ฟผ๋ฆฌ ํ ์ ์์ต๋๋ค. ๋ด์ฅ๋ ๋ฌธ์ ํ๋ ๋ฅผ ์ง์ ํ๋ ค๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ค์ฒฉ๋ ์ฟผ๋ฆฌ ํํ์ ๋๋ ํ์ค ๋ฌธ์ ์ ํ๊ธฐ๋ฒ ์ ์ฌ์ฉํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ MongoDB ์๋ฒ ๋งค๋ด์ผ์ ๋ด์ฅ๋/์ค์ฒฉ๋ ๋ฌธ์์ ๋ํ ์ฟผ๋ฆฌ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ธ์.
{ "<Field Name>": { "<Nested Field Name>": <Value | Expression> } }
{ "<Field Name>.<Nested Field Name>": <Value | Expression> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ reviews
๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธด ์ฌ๋์ ์ฌ์ฉ์ ์ด๋ฆ์ด JoeMango
์ธ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค:
{ "reviews.0.username": "JoeMango" }
๊ฐ ๋ฐฐ์ด ์ผ์น
๋ฐฐ์ด ํ๋์ ํฌํจ๋ ๋ชจ๋ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ปฌ๋ ์ ์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
ํน์ ๊ฐ ๋ฐฐ์ด์ ๋ํ ๋ฐฐ์ด ํ๋๋ฅผ ์ฟผ๋ฆฌํ๋ฉด MongoDB๋ ๋ฐฐ์ด ํ๋๊ฐ ์ง์ ๋ ๊ฐ ๋ฐฐ์ด ๊ณผ ์ ํํ ์ผ์น ํ๋ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. MongoDB ๋ฐฐ์ด ํ๋์ ์ง์ ๋ ๊ฐ ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ํฌํจ ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋ ค๋ฉด $all ๋ฅผ ์ฌ์ฉํ์ธ์.
์์ธํ ๋ด์ฉ์ MongoDB ์๋ฒ ๋งค๋ด์ผ์ ๋ฐฐ์ด ์ฟผ๋ฆฌ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ธ์.
{ "<Array Field Name>": [<Value>, ...] }
์์
๋ค์ ์ฟผ๋ฆฌ๋ reviews
๋ฐฐ์ด์ ์ง์ ๋ ๋ฌธ์์ ์ผ์นํ๋ ์์๊ฐ ์ ํํ ํ๋์ธ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค.
{ "reviews": [{ username: "JoeMango", comment: "This rocks!" }] }
์์
๋ค์ ์ฟผ๋ฆฌ ๋ reviews
๋ฐฐ์ด ์ ์ง์ ๋ ๋ชจ๋ ๋ฌธ์์ ์ผ์นํ๋ ์์๊ฐ ํ๋ ์ด์ ํฌํจ๋ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "reviews": { "$all": [{ username: "JoeMango", comment: "This rocks!" }] } }
๋ฐฐ์ด ์์ ์ผ์น
๋ฐฐ์ด ํ๋์ ์๋ ํ๋ ์ด์์ ์์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ปฌ๋ ์ ์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ์กฐ๊ฑด์ด ์๋ ์ฟผ๋ฆฌ ํํ์ ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ํ๋ ๋ฅผ ์ฟผ๋ฆฌ ํ๋ ๊ฒฝ์ฐ MongoDB ๋ ๋ฐฐ์ด ์์์ ๋ชจ๋ ์กฐํฉ ์ด ํํ์ ์ ์ถฉ์กฑํ๋ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. MongoDB ๊ฐ ๋จ์ผ ๋ฐฐ์ด ์์๊ฐ ๋ชจ๋ ํํ์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋๋ก ํ๋ ค๋ฉด $elemMatch ์ฐ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ธ์.
์์ธํ ๋ด์ฉ์ MongoDB ์๋ฒ ๋งค๋ด์ผ์ ๋ฐฐ์ด ์ฟผ๋ฆฌ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ธ์.
{ "<Array Field Name>": <Value | Expression> }
์์
๋ค์ ์ฟผ๋ฆฌ๋ reviews
๋ฐฐ์ด ๋ด ์์์ ๋ชจ๋ ์กฐํฉ์ด ๋ด์ฅ๋ ํํ์์ ๋ ์กฐ๊ฑด์ ๋ชจ๋ ์ถฉ์กฑํ๋ ๋ฌธ์์ ์ผ์นํฉ๋๋ค. ์ง์ ๋ username
๋ฐ comment
๊ฐ์ด ๋์ผํ ๋ฌธ์์ ์์ ํ์๋ ์์ต๋๋ค.
{ "reviews": { "username": "JoeMango", "comment": "This is a great product!" } }
์์
๋ค์ ์ฟผ๋ฆฌ๋ ๋ด์ฅ๋ ํํ์์ ๋ ์กฐ๊ฑด์ด ๋ชจ๋ reviews
๋ฐฐ์ด์ ๋จ์ผ ์์๋ก ์ถฉ์กฑ๋๋ ๋ฌธ์์ ์ผ์นํฉ๋๋ค. ์ง์ ๋ username
๋ฐ comment
๋ ๋์ผํ ๋ฌธ์์ ์์ด์ผ ํฉ๋๋ค:
{ "reviews": { "$elemMatch": { "username": "JoeMango", "comment": "This is a great product!" } } }
์ฟผ๋ฆฌ ์ฐ์ฐ์
Compare Values
๋น๊ต ์ฐ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ํ๋์ ๊ฐ์ ๋ค๋ฅธ ๊ฐ๊ณผ ๋น๊ตํ ์ ์์ต๋๋ค.
{ "<Field Name>": { "<Comparison Operator>": <Comparison Value> } }
๋ค์๊ณผ ๊ฐ์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
๋น๊ต ์ฐ์ฐ์ | ์ค๋ช
|
---|---|
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ์ง ์์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๋ณด๋ค ํฐ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๋ณด๋ค ์์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ ๋ฐฐ์ด์ ํฌํจ๋ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ๊ฐ ๋ฐฐ์ด์ ํฌํจ๋์ง ์์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. |
์์
๋ค์ ์ฟผ๋ฆฌ๋ quantity
๊ฐ 0๋ณด๋ค ํฌ๊ณ 10๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค.
{ "quantity": { "$gt": 0, "$lte": 10 } }
๋ ผ๋ฆฌ ํํ์ ํ๊ฐํ๊ธฐ
๋ ผ๋ฆฌ ์ฐ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ํ๋์ ๋ํ ์ฌ๋ฌ ํํ์์ ํ๊ฐํ ์ ์์ต๋๋ค.
{ "<Field Name>": { "<Logical Operator>": [<Expression>, ...] } }
๋ค์๊ณผ ๊ฐ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
๋
ผ๋ฆฌ ์ฐ์ฐ์ | ์ค๋ช
|
---|---|
ํ๋ ๊ฐ์ด ์ง์ ๋ ๋ชจ๋ ํํ์๊ณผ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ํํ์ ์ค ํ๋ ์ด์๊ณผ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
ํ๋ ๊ฐ์ด ์ง์ ๋ ํํ์๊ณผ ์ผ์นํ์ง ์๋ ๋ฌธ์๋ฅผ ์ผ์นํฉ๋๋ค. | |
์ง์ ๋ ๋ ผ๋ฆฌ ํํ์์ ๋ถ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ํต๋๋ค. |
์์
๋ค์ ์ฟผ๋ฆฌ๋ quantity
๊ฐ 0๋ณด๋ค ํฌ๊ฑฐ๋ reviews
๋ฐฐ์ด์ ๋ฌธ์๊ฐ 5๊ฐ ์ดํ์ธ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "$or": [ { "quantity": { "$gt": 0 } }, { "reviews": { "$size": { "$lte": 5 } } } ] }
์ ๊ท ํํ์ ํ๊ฐํ๊ธฐ
$regex ์ฟผ๋ฆฌ ์ฐ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ท ํํ์ ์(๊ณผ) ์ผ์นํ๋ ํ๋๊ฐ ์๋ ๋ฌธ์๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค. . $regex
EJSON ์ ํ์ ๋ชจํธ์ฑ์ ํผํ๋ ค๋ฉด BSON.BSONRegExp ๊ฐ์ฒด ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
{ "<Field Name>": { "$regex": BSON.BSONRegExp(<RegEx String>, <RegEx Options>) } }
์์
๋ค์ ์ฟผ๋ฆฌ๋ name
๊ฐ์ ํ์ ๋ฌธ์์ด ball
(๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ)์ด ํฌํจ๋ ๋ฌธ์์ ์ผ์นํฉ๋๋ค.
{ "name": { "$regex": BSON.BSONRegExp(".+ball", "i") } }