我如何通过mongodb中的_id功能进行搜索

时间:2019-03-21 03:14:43

标签: mongodb mongoose

例如,我想更新_id为奇数的数据的一半。例如:

db.col.updateMany({"$where": "this._id is an odd number"})

_id是mongo的ObejectId而不是整数,它被视为十六进制“字符串”。不支持将代码编码为:

db.col.updateMany(
  {"$where": "this._id % 2 = 1"},
  {"$set": {"a": 1}}
)

那么正确的格式是什么?

如果按照_id成型怎么办?

1 个答案:

答案 0 :(得分:0)

也可以使用两个数据库调用来完成此操作。

  • 从集合中获取_id列表。
  • 仅将ODD _id推入数组。
  • 更新收藏集。

更新收藏集:

db.collection.update(
   { _id: { $in: ['id1', 'id2', 'id3'] } }, // Array with odd _id
   { $set: { urkey : urValue } }
)