更新字段不存在的 MongoDB 集合

我想更新不包含特定字段的集合中的每条记录。

以下查询使用 Mongo shell 工作,但我正在努力使用 .Net 中的 mongoDB.Driver 来编写它。

db.Comments.update(
    { MemberRoleType: { $exists: false }},
    { $set: { MemberRoleType: 4 },
    { multi: true }
)

我尝试了如下各种方法,但无法达到我正在寻找的结果:

await comments.UpdateManyAsync(c => c.MemberRoleType == 0, Builders<Comment>.Update.Set(x => x.MemberRoleType, ContentRoleType.Online)));

人到中年有点甜
浏览 147回答 1
1回答

ITMISS

我相信你正在寻找存在Builders<Comments>.Filter.Exists(x => x.MemberRoleType, false);你应该可以像这样使用它var filter = Builders<Comments>.Filter.Exists(x => x.MemberRoleType, false);await comments.UpdateManyAsync(filter, Builders<Comment>.Update.Set(x => x.MemberRoleType, ContentRoleType.Online)));进而生成此查询{&nbsp; &nbsp; &nbsp; &nbsp; "q": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "MemberRoleType": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "$exists": false&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "u": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "$set": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "MemberRoleType": 4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "multi": true}
打开App,查看更多内容
随时随地看视频慕课网APP