我是JS的新手,我正在利用MEAN堆栈创建一个让学生可以在其用户个人资料中添加课程的地方。我的数据库中已经有一个会话存储,因此“ req.user”将返回当前登录的用户信息,特别是“ req.user.id”将返回当前登录的用户ID。另外,我已经找到了如何从应用程序中搜索数据库中的课程。最终,我的目标是当用户发出发布请求以在数据库中进行搜索时,我还希望将这些“值”推送到“键”类中。我提供了两个选项,这两个选项都不会将各自的字符串添加到数据库中。谢谢您的帮助!
Search.JS选项#1的一部分
import tensorflow as tf
import numpy as np
def customOps(n):
x = tf.placeholder(tf.float32)
v1 = tf.reduce_sum(x,1)
v2 = tf.reduce_sum(x,0)
v = tf.nn.softmax(tf.concat([v1, v2], 0))
index = np.argmax(v)
if index > n/3:
finalval = tf.norm(v1-v2, ord='euclidean')
else:
finalval = tf.norm(v1+v2, ord='euclidean')
return x, finalval
if __name__ == '__main__':
mat = np.asarray([[0, 1], [1, 0]], dtype = np.float32)
n = mat.shape[0]
tf.reset_default_graph()
x, finalVal = customOps(n)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
outVal = sess.run(finalVal, feed_dict={x:mat})
print(outVal)
sess.close()
Search.JS选项#2的一部分
router.post('/', ensureAuthenticated, function (req,res,next) {
var query = {course: req.body.coursename};
db.collection('courses').find(query).toArray()
.then(db.collection('DefaultUser').update({_id: req.user.id}, {$push: {classes: req.body.coursename}}));
res.render('search', {title: 'search'})
});
答案 0 :(得分:0)
一些提示可能会有所帮助:
app.use(express.urlencoded())
来解析发布的数据,则req.body
将不保存任何内容。ObjectId('<string>')
(在选项#2中)查找和更新查询,而不仅仅是字符串,因为mongodb默认将_id
存储为ObjectId类型。$addToSet
而不是$push
修饰符向数组添加唯一元素,或者如果一个学生重复提交表格,则可以让一个学生订阅另外两个相同的班级。courses
集合中找到,然后进行更新,但是由于您对发现结果不做任何事情,因此没有必要(空结果不会引发任何错误)。检查数据是否有效是一种很好的做法,如果您想这样做,则在两个选项中都需要使用findOne
而不是find
来确保课程已经存在,并且{{1} }。我没有您项目的完整代码,所以我只能猜测可能存在上面列出的问题,祝您好运!