Arrays 使用MLAB API更新数组内容?

Arrays 使用MLAB API更新数组内容?,arrays,json,node.js,api,mlab,Arrays,Json,Node.js,Api,Mlab,我有一个JSON格式: { "array":[ { "node1":"value1", "node2":"value2" }, { "node1":"value1", "node2":"value2" } ] } 现在我有了一个前端GUI,从中我接收到2个需要插入阵列的参数 但是如果第一个参数value1已经在数组中,那

我有一个JSON格式:

{
    "array":[
        {
            "node1":"value1",
            "node2":"value2"
        },
        {
            "node1":"value1",
            "node2":"value2"
        }
    ]
}
现在我有了一个前端GUI,从中我接收到2个需要插入阵列的参数

但是如果第一个参数
value1
已经在数组中,那么我只需要更新数据库中相应的
value2
。 如果数组中不存在
value1
,则在数组中插入一个新对象
{“node1”:“value1”、“node2”:“value2”}


我需要使用mLAB API来实现这一点。阅读文档并不能帮助我找到解决方案。

据我所知,没有一个查询可以在数组中插入文档。您可以在应用程序逻辑中实现这一点,也可以使用两个查询。有两种查询解决方案。下面是一个使用
$pull
$push
的示例:

curl https://api.mlab.com/api/1/databases/<db>/collections/<collection>?apiKey=apiKey \
-X PUT \
-H 'Content-Type: application/json' \
-d '{"$pull": {"array": {"node1": "value1"}}}'

curl https://api.mlab.com/api/1/databases/<db>/collections/<collection>?apiKey=apiKey \
-X PUT \
-H 'Content-Type: application/json' \
-d '{"$push": {"array": {"node1": "value1", "node2": "value2"}}}'
curlhttps://api.mlab.com/api/1/databases//collections/?apiKey=apiKey \
-放\
-H'内容类型:应用程序/json'\
-d'{“$pull”:{“array”:{“node1”:“value1”}}'
卷曲https://api.mlab.com/api/1/databases//collections/?apiKey=apiKey \
-放\
-H'内容类型:应用程序/json'\
-d'{“$push”:{“array”:{“node1”:“value1”,“node2”:“value2”}
此操作用于更新
node1
“value1”
的对象,或者如果该对象不存在,则将其添加到数组中。这取决于
node1
属性是否具有唯一值


警告:mLab强烈建议使用一个MongoDB驱动程序连接到数据库,而不是数据API。您的API密钥将允许您完全访问属于您的mLab帐户的数据库中的所有数据。因此,如果您在客户端应用程序中将其分发给不受信任的个人,他们可以访问您的帐户和数据。欢迎发电子邮件support@mlab.com如果您需要其他建议。

谢谢@tfogo。这解决了我的问题!