你能用2.0驱动程序帮助我正确运行"拉(删除)".
我有一个这样的集合,我想删除第一个跟随者字段命名为fethiye的追随者.
{
"_id": ObjectId("554e05dfc90d3d4dfcaa2aea"),
"username": "bodrum",
"followerList": [
{
"_id": ObjectId("554e0625a51586362c33c6df"),
"follower": "fethiye",
"avatar": "fethiye.png"
},
{
"_id": ObjectId("554e0625a51586362c33c6df"),
"follower": "izmir",
"avatar": "izmir.png"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我该如何修复此查询?
var filter = new BsonDocument("username", "bodrum");
var update = Builders<Person>.Update.Pull("followerList:follower", "fethiye");
Person pr = collection.FindOneAndUpdateAsync(filter, update).Result;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我在mongo shell中运行以下代码:
db.unicorns.insert({name: 'Dunx', loves: ['grape', 'watermelon']});
Run Code Online (Sandbox Code Playgroud)
现在我在MongoDB集合中有这样的东西:
{name: 'Dunx', loves: ['grape', 'watermelon']}
Run Code Online (Sandbox Code Playgroud)
你可以看到loves一个数组.
题
如何使用官方C#驱动程序编写C#代码,执行以下操作:
db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
Run Code Online (Sandbox Code Playgroud)
上面的代码在mongo shell中运行得很好.
我有这样的模型:
{
"_id":"5b90eea8c02e062be2888446",
"storeGuid":"e97d4730-9b8a-49ed-be87-caf4054439aa",
"storeId":"0",
"storeDbName":"0",
"tenant":"dev",
"configGroup":[
{
"groupName":"peopleCounter",
"config":[
{
"key":"averageWaitPeriodTime",
"value":"60",
}
]
},
{
"groupName":"sessionMonitor",
"config":[
{
"key":"testKey1",
"value":"987",
},
{
"key":"testKey2",
"value":"123",
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我试图更新value的"key":"testKey2"
我有这样的更新声明:
await coll.UpdateOneAsync(
x => x.StoreGuid == storeGuid
&& x.ConfigGroup.Any(y => y.GroupName == groupName
&& y.Config.Any(z => z.Key == model.Key)),
Builders<StoreModel>.Update.Set(x => x.ConfigGroup[-1].Config[-1].Value, model.Value));
Run Code Online (Sandbox Code Playgroud)
例如,当我尝试groupName使用此类过滤器进行更新时,ConfigGroup[-1]它会起作用。
但是在我们拥有的情况下,ConfigGroup[-1].Config[-1]它不起作用。
我知道两个选项如何更新值:
ConfigGroup[-1].ConfigConfigGroup[configGroupIndex].Config[configKeyIndex].Value但是我想知道为什么它不适用于-1索引。以及如何正确执行。
请使用c#MongoDB.Driver回答。
提前致谢。
我通过最新的 C# 驱动程序(此时为 v2.7.0)使用 MongoDB 4.0。我有一份文件,其中有Options和。换句话说,库存数组嵌套在选项数组中。如何了解库存水平并仅更新库存?OptionsInventory
以下是我的 JSON 格式文档的样子:
{
"Options": [
{
"Id": 1,
"Description": "This is one option",
"Inventory": [
{
"Id": 1,
"Name": "Box of stuff"
},
{
"Id": 2,
"Name": "Another box of stuff"
}
]
},
{
"Id": 2,
"Description": "This a second option",
"Inventory": [
{
"Id": 1,
"Name": "Box of stuff"
},
{
"Id": 2,
"Name": "Another box of stuff"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
使用 C# 驱动程序,如果我知道选项的 Id …