object.valueOf(),如果返回false
object.valueOf() if returns false
我对JavaScript中的类如何工作感到困惑,我一直知道它稍微复杂一些,但现在我完全不知道。下面的代码和输出。
以下json存储在mongodb中。我怀疑这可能是错误的地方。
console.log(JSON.stringfy(用户)):
{"_id":"5687f787f8ad41175fab5bd5","pic":"karl.png","language":"5687f787f8ad41175fab5bd2","cell":1,"local":{"email":"karl.morrison@email.com","password":"12345"},"profile":{"name":"Karl Morrison"},"sessions":[{"id":"5687f79bf8ad41175fab5bd9","seen":false,"active":false}]}
console.log(JSON.stringfy(消息)):
{"authorId":"5687f787f8ad41175fab5bd5","upvotes":0,"created":"2016-01-02T16:15:23.621Z","message":"<p>aa</p>"}
Ze代码:
console.log('"' + user._id.valueOf() + '" "' + message.authorId.valueOf() + '"');
console.log({}.toString.call(user._id).split(' ')[1].slice(0, -1).toLowerCase());
console.log({}.toString.call(message.authorId).split(' ')[1].slice(0, -1).toLowerCase());
if (user._id.valueOf() == message.authorId.valueOf()) {
console.log('TRUE');
} else {
console.log('FALSE');
}
控制台:
"5687f787f8ad41175fab5bd5" "5687f787f8ad41175fab5bd5"
object
object
FALSE
我不明白为什么不返回TRUE?
根据mongodb文档:
在版本2.2中更改:在以前的版本中ObjectId.valueOf()返回ObjectId()对象。
由于user._id
和message.authorId
是ObjectId
对象,因此常规的==
比较它们的引用,从而得到false
。
尝试使用其中一种:
user._id.toString() == message.authorId.toString()
user._id.equals(message.authorId)
- 升级到更新的mongodb驱动程序
相关文章:
- 如果返回的数据是javascript,$.ajax会自动执行脚本吗
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 如果函数返回True,则显示Javascript按钮
- 如果在过去两个小时内没有记录,返回0,javascript逻辑
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 试图清理一个电话号码,以便如果它像816-345-6757一样被输入,它会像8163456757一样返回它
- 如果总是执行finally,为什么try会返回未更改的值
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- 如果URL中有任何字符串变体匹配,则返回true
- 如果URL's链接返回错误
- 如果返回false,如何在提交时关闭引导模式
- 如果返回错误
- 浏览器返回上一页功能,如果返回如何重新加载文档
- object.valueOf(),如果返回false
- 如果返回true,则检查Javascript对象属性
- 如果返回的值为true,则加载另一个分部
- onkeypress事件的奇怪行为页面重新加载如果"返回false;"是缺失的,否则它不会让我输入任
- 如何抓取搜索结果,如果返回javascript(使用python)
- 如果返回的内容不为空,则停止setInterval
- 如果返回值为空,则隐藏行