如何插入带有\的文档

发布问题 回首页

如何插入带有\的文档

★ 0 成为第一个关注这个问题的人

想要往文档中插入 “mys\”,该如何写insert后的表达式呢?

pradb>db.newtab.insert({f1:”mys\”}) db.newtab.insert({f1:”mys\\”}) db.newtab.find()
{ “_id” : ObjectId(“5a30e4b53bd6e79f91c6d090″), “f1″ : “mys\\” } <—变成mys\\了

正确的写法是?

oliseh@163.com 在大约 之前 回答了
  • 提问于
  • Answers2 个
  • 浏览 19 次
  • 最新活跃于

2 个回答2

0
oliseh@163.com answered about

如果我要把下面这个文档搜索出来
{ “_id” : ObjectId(“5a30e4b53bd6e79f91c6d090″), “f1″ : “mys\\” }

为什么要用四个\\\\ ?
pradb>db.newtab.find({f1:{$regex:”mys\\\”}})
2017-12-14T08:36:59.690+0800 E QUERY [thread1] SyntaxError: unterminated string literal @(shell):1:27

pradb>db.newtab.find({f1:{$regex:”mys\\\\”}})
{ “_id” : ObjectId(“5a30e4b53bd6e79f91c6d090″), “f1″ : “mys\\” }

1
ylb answered about

这个是正常的,\\代表的是\的转义,因为在mongodb里面字符串都是unicode存储的。你读出来编码成字符串之后就正常了。

问题状态

  • Open

类别

2个参与者

如何插入带有\的文档》有12个想法

  1. 谢答,但个人认为不准确,1.mr我觉得不适合实时计算,更贴合后期数据统计需求,2.aggregate必须支持自定义函数,就好像你定义个abc(1,2)一样肯定是计算了,现在的问题是abc(1,2)这个参数我想传个字段进去,比如abc($qty,2)这样….他就不好使了….难道大家没有在aggregate中用字段进行计算的经历么?

发表评论