我已经尝试了几个小时才能使这个简单的查询正常工作,但是不成功。我已经在MongoDB Stitch中创建了HTTP服务,并且使用这样的ID调用该服务
https://stitchurl.myservice?ID=blablabla
在服务内,我想禁用ID为x的帐户,因此我尝试这样称呼它:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selectObj">
<option value="first">First</option>
<option value="second">Second</option>
</select>
<button type="button" id="submitBtn" >Test</button>
无论我是否查询:
exports = function(payload) {
var queryArg = payload.query || '';
var ID = queryArg.ID || '';
if(ID !== "")
{
const mongodb = context.services.get("mongodb-atlas");
const mycollection = mongodb.db("myDB").collection("myCollection");
var oID = new BSON.ObjectId(ID);
return mycollection.updateOne({oID}, {$set:{isdisabled: true}});
}
}
我总是收到0个结果,但是当我进入MongoDB Atlas集合时,我可以查询
{ID}
{oID}
{_id:ID}
{_id:oID}
...
,并获得正确的结果。规则或权限没有问题,因为如果我运行
{_id:ObjectId("myID")}
我受到了适当的打击。
有什么想法我在做什么错吗?
关于基督徒
答案 0 :(得分:0)
有一个类似的问题,我花了一段时间才弄清楚。问题(可能)是由于与此收藏集相关的“规则”造成的。转到Stitch应用程序中的“规则”菜单项,然后选择权限旁边的“模式”标签。在这里,您将看到类似这样的内容:
{
"properties": {
"_id": {
"bsonType": "objectId"
},
"user_id": {
"bsonType": "string"
}
}
}
在上述情况下,_id字段是一个objectId,而user_id字段是一个字符串。模式必须匹配您要搜索的内容。希望这会有所帮助!