检查 mongo 文档数组中是否存在值
check if value exists in mongo document array
我有一个 Items 集合,其中有一个数组存储所有访问过该项目 URL
的客户端的 IP 地址
{
"title" : "asdads",
"artist" : "adsdd",
"description" : "adas",
"category" : "sheetmusic",
"price" : 15,
"publish" : true,
"downloadUrl" : "https1f5c69ce0c9eb1bc5032362d853d",
"s3key" : "ee33e7320b8a4fe881f5c69ce0c9eb1bc5032362d853d",
"userId" : "LnsYqhsefu7ZmQmTq",
"views" : 0,
"downloads" : 1,
"likes" : 0,
"dislikes" : 0,
"createdAt" : ISODate("2015-02-21T17:17:40.491Z"),
"_id" : "GM8M37EWTfZ2Jwatu"
"IPs: [
"0.0.0.0"
]
}
我想知道给定的项目文档是否在其数组中有 ip 地址,如果没有,则添加它,否则 return true
最好和最有效的方法是什么?
您可以使用 $addToSet
运算符执行此操作。
要检查您的数组是否已包含给定值,您只需要使用 nModified
即可获得的已修改文档的数量
db.collection.update({_id: "GM8M37EWTfZ2Jwatu"},
{$addToSet: {IPs: "98.245.153.111"}}
).nModified
输出
1
我有一个 Items 集合,其中有一个数组存储所有访问过该项目 URL
的客户端的 IP 地址{
"title" : "asdads",
"artist" : "adsdd",
"description" : "adas",
"category" : "sheetmusic",
"price" : 15,
"publish" : true,
"downloadUrl" : "https1f5c69ce0c9eb1bc5032362d853d",
"s3key" : "ee33e7320b8a4fe881f5c69ce0c9eb1bc5032362d853d",
"userId" : "LnsYqhsefu7ZmQmTq",
"views" : 0,
"downloads" : 1,
"likes" : 0,
"dislikes" : 0,
"createdAt" : ISODate("2015-02-21T17:17:40.491Z"),
"_id" : "GM8M37EWTfZ2Jwatu"
"IPs: [
"0.0.0.0"
]
}
我想知道给定的项目文档是否在其数组中有 ip 地址,如果没有,则添加它,否则 return true
最好和最有效的方法是什么?
您可以使用 $addToSet
运算符执行此操作。
要检查您的数组是否已包含给定值,您只需要使用 nModified
db.collection.update({_id: "GM8M37EWTfZ2Jwatu"},
{$addToSet: {IPs: "98.245.153.111"}}
).nModified
输出
1