我有一个Collection项目,其中有一个数组,用于存储访问过该项目的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地址,如果没有,则添加它,否则返回true
最好和最有效的方法是什么?
您可以使用$addToSet
运算符执行此操作。要检查数组是否已经包含给定值,您需要的是可以使用的已修改文档的数量nModified
db.collection.update({_id: "GM8M37EWTfZ2Jwatu"},
{$addToSet: {IPs: "98.245.153.111"}}
).nModified
输出
1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句