Arrays 使用MLAB API更新数组内容?
我有一个JSON格式: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已经在数组中,那
{
"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。这解决了我的问题!