我按照预期在mongo shell上运行以下查询.db.getCollection(personnels).update({_id: ObjectId(55f6728b9d73a15807885de8), Devices._id:ObjectId(55fa5f7ac9e7863a3836e331)}, {$pull:{ Devices.$.DeviceC...
我按照预期在mongo shell上运行以下查询.
db.getCollection('personnels').update(
{
_id: ObjectId("55f6728b9d73a15807885de8"),
"Devices._id":ObjectId("55fa5f7ac9e7863a3836e331")
},
{
$pull:{ "Devices.$.DeviceCloudFolders": { "CloudFolderId": ObjectId("5615124b06275f072040c4f1")}}
}
);
这是我的文档结构:
{
"_id" : ObjectId("55f6728b9d73a15807885de8"),
"FirstName" : "Tolga",
"Devices" : [
{
"_id" : ObjectId("55fa5f7ac9e7863a3836e331"),
"Name" : "tolga-laptop",
"DeviceCloudFolders" : [{
"AuthorityType" : 1,
"CloudFolderId" : ObjectId("55f96db5c9e7863a3836e310"),
"Status" : 1
}],
"Status" : 1
}
],
"Status" : 1
}
我需要在C#中使用它并且无法弄清楚如何使用它.
我从这些线开始:
var filter = Builders<Personnel>.Filter.And(
Builders<Personnel>.Filter.Eq("_id", ownerPersonnelId),
Builders<Personnel>.Filter.Eq("Devices._id", _id));
var update = Builders<Personnel>.Update.PullFilter("Devices.$.DeviceCloudFolders", /*couldn't figure out what goes here*/))
Personnels.FindOneAndUpdateAsync(filter, update);
解决方法:
我不确定,但你可以试试这个:
var update = Builders<Personnel>.Update.PullFilter(
"Devices.$.DeviceCloudFolders",
Builders<DeviceCloudFolder>.Filter.Eq("CloudFolderId", _cloudFolderId));
沃梦达教程
本文标题为:使用C#MongoDB驱动程序的嵌套数组$pull查询
基础教程推荐
猜你喜欢
- C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】 2022-11-02
- Unity基于ShaderLab实现光照系统(着色器代码实现小结) 2023-05-12
- .Net Core以windows服务方式部署 2023-05-16
- C#对图片进行马赛克处理可控制模糊程度的实现代码 2022-12-11
- C#串口接收程序的实现 2023-06-05
- C#里SuperSocket库不能发现命令的原因 2023-05-06
- .Net Core部署Linux系统(CentOS7.6) 2023-09-26
- C#简单实现表达式目录树(Expression) 2022-11-23
- c# – 如何调试由协议关联启动的Windows Phone 8.1应用程序? 2023-09-19
- C# 如何实现Token 2023-04-09