필드가 MongoDB와 함께 존재하는지 확인
필드 세트가 있고 null이 아닌 모든 레코드를 찾고 있습니다.
사용해보겠습니다.$exists단, MongoDB 매뉴얼에 따르면 이 쿼리는 null과 동일한 필드를 반환합니다.
$exists는 null 값을 저장하는 필드가 포함된 문서와 일치합니다.
그래서 저는 다음과 같은 일을 해야 한다고 생각합니다.
db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })
그런데 이걸 시도할 때마다 에러가 나요.[invalid use of $not]이걸 어떻게 문의해야 할지 아는 사람?
사용하다$ne('같지 않음'의 경우)
db.collection.find({ "fieldToCheck": { $ne: null } })
다음과 같은 컬렉션이 있다고 가정합니다.
{
"_id":"1234"
"open":"Yes"
"things":{
"paper":1234
"bottle":"Available"
"bottle_count":40
}
}
병마개가 있는지 없는지 알고 싶습니다.
응답:
db.products.find({"things.bottle":{"$exists":true}})
나는 이것이 나에게 효과가 있다는 것을 알았다.
db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}})
이 코멘트는 2021년에 작성되었으며 MongoDB 5.X 이전 버전에 적용됩니다.
쿼리 성능을 중시하는 경우 $exists를 사용하지 마십시오(또는 쿼리된 필드에 스파스 인덱스가 있는 경우에만 사용).sparse 인덱스는 쿼리의 기준과 일치해야 합니다.즉, $sparse:true를 검색하는 경우 sparse 인덱스는 필드 위에 있어야 합니다.{$exist:true}, $sparse:true를 조회하는 경우 sparse 인덱스는 필드 위에 있어야 합니다.{$exist:false}
대신 다음을 사용합니다.
db.collection.find({ "fieldToCheck": { $ne: null } })
또는
db.collection.find({ "fieldToCheck": { $eq: null } })
이 경우 컬렉션의 모든 문서에 FieldToCheck를 포함해야 합니다.단, 퍼포먼스가 대폭 향상됩니다.
db.<COLLECTION NAME>.find({ "<FIELD NAME>": { $exists: true, $ne: null } })
저 같은 경우에는 새로운 필드를 추가했습니다.isDeleted : true삭제되는 필드만 표시합니다.
그래서 다른 모든 기록에는isDeleted필드, 그래서 나는 모든 필드를 취득하고 싶었다.isDeleted존재하지 않거나 false입니다.그래서 쿼리는
.find({ isDeleted: { $ne: true } });
[ I Try to convert it to boolean condition ](테이블명을 가진 문서가 이미 존재하는 경우)로 변환하려고 했습니다.이 경우 같은 문서에 추가되며 그렇지 않은 경우 1개가 생성됩니다.
table_name은 문서를 찾으려는 변수입니다.
query = { table_name : {"$exists": "True"}}
result = collection.find(query)
flag = 0
for doc in result:
collection.update_one({}, { "$push" : { table_name : {'name':'hello'} } } )
flag = 1
if (flag == 0):
collection.insert_one({ table_name : {'roll no' : '20'}})
집약 예
https://mongoplayground.net/p/edbKil4Zvwc
db.collection.aggregate([
{
"$match": {
"finishedAt": {
"$exists": true
}
}
},
{
"$unwind": "$tags"
},
{
"$match": {
"$or": [
{
"tags.name": "Singapore"
},
{
"tags.name": "ABC"
}
]
}
},
{
"$group": {
"_id": null,
"count": {
"$sum": 1
}
}
}
])
언급URL : https://stackoverflow.com/questions/19868016/check-that-field-exists-with-mongodb
'source' 카테고리의 다른 글
| AngularJS POST 실패: 프리플라이트 응답에 비활성 HTTP 상태 코드 404가 있습니다. (0) | 2023.02.22 |
|---|---|
| Larabel 5.3에서의 ajax POST 최소 동작 예 (0) | 2023.02.22 |
| php: json 어레이를 통한 루프 (0) | 2023.02.22 |
| AngularJS $interval 함수는 루트 변경 후에도 계속됩니다. (0) | 2023.02.22 |
| 필드가 존재하지 않거나 null이거나 false인 MongoDB 문서를 선택하십시오. (0) | 2023.02.22 |