gpt4 book ai didi

javascript - MongoDB如何在查询中引用对象的属性

转载 作者:行者123 更新时间:2023-12-03 05:08:54 24 4
gpt4 key购买 nike

我正在尝试在 MongoDB 上运行一个脚本,该脚本将设置 teacher_ids[] = [document.owner_id]owner_id 已存在于集合中的所有对象上。我当前的尝试如下所示:

db.getCollection('readings').update({ $where: "this.teacher_ids[0] != this.owner_id" }, { $set: { "teacher_ids": [this.owner_id] }}, { multi: true })

一切都几乎有效,除了文档看起来像

doc: {
owner_id: "some_id",
teacher_ids: [undefined]
}

这必定意味着 update 的第二个参数中的 this 没有引用该文档。如何设置:

teacher_ids = [document.owner_id]

示例文档

{
"_id" : ObjectId("586f07bd6a2169fdffb0563b"),
"teacher_ids" : [],
"owner_id" : "57c268dd6c9fd2320035e67e",
"source" : "http://www.omfgdogs.com",
"title" : "Test",
"updatedAt" : ISODate("2017-01-28T07:43:46.597Z"),
"createdAt" : ISODate("2017-01-06T02:58:05.699Z")
}

最佳答案

我认为在更新组件中您不能通过此或其他方式引用任何其他字段值。

不过可以通过脚本来完成

db.getCollection('readings').find({ $where: "this.teacher_ids[0] != this.owner_id" }).forEach(function(x){x.teacher_ids = [x.owner_id]; db.readings.save(x)});

关于javascript - MongoDB如何在查询中引用对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41914799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com