[MONGODB] MongoDB를 사용하는 필터는 목록과 일치하는
MONGODBMongoDB를 사용하는 필터는 목록과 일치하는
나는 BsonDocument의 목록을 가지고 :
var list = db.GetCollection<BsonDocument>(collectionName);
var myIds = list.Find(_ => true)
.Project(Builders<BsonDocument>.Projection.Include("_id"))
.ToList();
포함한다 :
그리고 다음과 같이 조회 할 :
var deleted =list.DeleteMany(Builders<MessageExchange>.Filter.In("_id", myIds));
나는 또한 다음을 시도했다 :
var filter = new BsonDocument("_id", new BsonDocument("$in", new BsonArray(myIds)));
var deleted = list.DeleteMany(filter);
반환 속성 DeletedCount = 0 필터에 대한 잘못된 것으로 보이는 누군가 지점 수 있을까요?
해결법
-
==============================
1.이 같은 BsonDocument에서 _id를 추출해야합니다 :
이 같은 BsonDocument에서 _id를 추출해야합니다 :
var extractedIds = myIds.Select(x => x["_id"].ToString()).ToList();
이는 후에는 필터에 사용할 수 있습니다.
list.DeleteMany(Builders<MessageExchange>.Filter.In("_id", extractedIds));
확인하는 것을 MessageExchange 클래스의 필터 일치의 _id 부분
그렇게하는 또 다른 방법은 그것에게 강력한 형식화를 만드는 것입니다 :
list.DeleteMany(Builders<MessageExchange>.Filter.In(x => x.Id, extractedIds));
-
==============================
2.뿐만 아니라이 작품은 (Skami의 답변에 따라) :
뿐만 아니라이 작품은 (Skami의 답변에 따라) :
var filter = new BsonDocument("_id", new BsonDocument("$in", new BsonArray(extractedIds))); list.DeleteMany(filter);
그러므로 MessageExchange 클래스에 연결되어 있지 않습니다.
from https://stackoverflow.com/questions/55417118/mongodb-use-filter-to-match-a-list by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 $ 조회 OBJECTID GET 빈 배열? (0) | 2019.12.27 |
---|---|
[MONGODB] 파셜을로드하면 서버 JS 실패 (0) | 2019.12.27 |
[MONGODB] 배열 필드의 모든 값이 다른 배열에 존재 선택 문서 (0) | 2019.12.27 |
[MONGODB] MongoDB를 3.6.0-RC3 배열 필터가 작동하지? (0) | 2019.12.27 |
[MONGODB] 사용자 정의 함수는 열 MongoDB를 투사을 계산 (0) | 2019.12.27 |