我正在开发一个流星应用程序,并使用最新的流星包。我想重新定位 mongo 文档数组中的项目。为了实现这一目标,我$pull
将其从数组中取出,然后$push
它在特定的index
位置根据MongoDB 文档 https://docs.mongodb.org/v3.0/reference/operator/update/position/.
MyCollection.update({_id: my_doc.id},
{
$push:
{
my_array:
{
$each:[my_item.id],
$position:index
}
}
}
)
Meteor/Mongo 抛出以下错误:
更新失败:MongoError:无法规范化查询:BadValue 未知
顶级运算符:$each
我首先实现了这个客户端。我认为由于 minimongo 的限制,它不起作用。
我写了一个方法来处理这个服务器端,但我最终遇到了同样的错误。
这个请求有什么问题,meteor 可以处理 $each 操作符吗?
EDIT:我尝试直接将其插入到 robomongo 中,并且成功了。 Mongo版本,输入时db.version()
返回 2.6.7
*编辑2:我没想到,所以我之前没有检查:更新有效,都与$pull
和$push
。但是,即使数据实际上已更新,我仍然收到错误。
*编辑:这是一些示例数据:
{
"_id" : "oSNrpgAAu8BuznvD6",
"name" : "tynhjderjye",
"description" : "",
"notes" : "",
"display_notes" : false,
"keywords" : [
""
],
"owner" : "mA5Y7LBCoRyeSDkaG",
"createdAt" : ISODate("2015-10-27T13:59:06.083Z"),
"createdBy" : "C3i9oj4eapyttHZj6",
"contributors" : [
"C3i9oj4eapyttHZj6"
],
"medias" : [
"TcFqermNY4y5cjBG3",
"dbkNN2rxXJXth8urw",
"jML4JKkRoKxx8sLwu",
"LEWYsnPrXRSH6MPkX"
],
"modifiedAt" : ISODate("2015-11-17T09:35:50.303Z"),
"modifiedBy" : "C3i9oj4eapyttHZj6",
"chunks" : [
"qCCHKJDbdTLEFR5Yt",
"ySiM7dcxvduEM2npj",
"5q46vqrmYttscitiK"
],
"trashed" : ISODate("2015-11-17T09:35:50.303Z")
}
chunks
是数组my_array
我拉和推的地方my_item.id
在该位置index